質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1741閲覧

自分のパソコンから社内共有フォルダへデータ送信ができない

Zhiye

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/13 02:45

編集2021/02/13 08:31

実施していること

下記サンプルコードを用いて、自分のパソコン内で作成したデータをVPN接続を介し社内共有フォルダへ
データ送信するコードを作成しています。

このコードは、自分のパソコン内の「送信データ」フォルダにあるExeclファイルをサーバーにコピーし、
サーバーの「test」フォルダの中のファイルを「受信データ」フォルダの中にコピーしています。

**サンプルコード(引用:Excel×Python自動化の超基本(井沢剛著)** #共有フォルダにアクセスする import os import glob from smb.SMBConnection import SMBConnection path = os.getcwd()#現在の作業フォルダ位置を取得 sendFileFolder = os.path.join(path,"送信データ") reciveFileFolder = os.path.join(path,"受信データ") user = "" #サーバー接続ユーザー名 password = "" #サーバー接続パスワード ipAdress = "192.168.130.100" #サーバーIPアドレス(例) serverFolder = "test" #サーバーフォルダ(例) connection = SMBConnection(user,password,"myClie nt","HostServer") connection.connect(ipAdress, 139) #サーバーにデータを送信 os.chdir(sendFileFolder) #送信データフォルダに移動 for sendFile in glob.glob("*.xlsx"): with open(sendFile, "rb") as file: connection.storeFile(serverFolder, sendFile, file) #サーバーのデータを受信 os.chdir(reciveFileFolder) #受信データフォルダに移動 for reciveFile in connection.listPath(serverFolder, '/'): if reciveFile.filename =="." or reciveFile.filename == "..": continue #不要な要素を読み飛ばす with open(reciveFile.filename, 'wb') as file: connection.retrieveFile(serverFolder, reciveFile.filename, file) connection.close()

困っていること/実施したこと

上記サンプルコードを編集したところ、**“#サーバーにデータを送信”**まではエラーがないものの、
下記部分でエラーになります。

for sendFile in glob.glob("*.xlsx"): with open(sendFile, "rb") as file: connection.storeFile(serverFolder, sendFile, file) smb.smb_structs.OperationFailure: Failed to store test1.xlsx on \●●\●●\●●: Unable to connect to shared device

ちなみに、実施したこととして、**“#サーバーにデータを送信”**まではエラーがないことを確認するために、
echoを使用してサーバーとの疎通確認を行い、問題ないことを確認しました。

import os import glob from smb.SMBConnection import SMBConnection import platform path = os.getcwd()#現在の作業フォルダ位置を取得 sendFileFolder = os.path.join(path,"送信データ") reciveFileFolder = os.path.join(path,"受信データ") user = "●●●" #サーバー接続ユーザー名 password = "XXX" #サーバー接続パスワード ipAdress = "11.11.200.11" #サーバーIPアドレス serverFolder = "\\●●\●●\●●" #サーバーフォルダ connection = SMBConnection(user,password,platform.uname().node, "YYY") connection.connect(ipAdress, 139) #サーバーにデータを送信 print(connection.echo('echo success')) #結果 echo success

問題点は、下記部分にあると推測し色々調べましたが、どうしても解決することができません。

connection.storeFile(serverFolder, sendFile, file)

実施したいこと

上記問題点をクリアして、自分のパソコン内の「送信データ」フォルダにあるExeclファイルを
サーバーにコピーし、あわせてサーバー内フォルダの中のファイルを「受信データ」フォルダの中に
コピーできるようにしたいです。

お手数をおかけしますがご教示のほど宜しくお願い致します。

環境

Python 3.7 : Anaconda custom (64-bit)
Windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問