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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Python

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

Q&A

解決済

1回答

1389閲覧

pythonでFTPサーバーに繋げてローカルのhtmlファイルをサーバー直下にアップロードしたいです。

Tochan

総合スコア56

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Python

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

0グッド

0クリップ

投稿2019/12/25 07:28

前提・実現したいこと

こんにちは。
pythonでFTPサーバーに繋げてローカルのhtmlファイルをサーバー直下にアップロードしたいと思います。下記エラーがでます。どうしたらいいでしょうか?
分かる方よろしくお願いします。

https://intellectual-curiosity.tokyo/2019/12/01/python%E3%81%A7ftp%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%82%92%E8%A1%8C%E3%81%86%E6%96%B9%E6%B3%95/

↑を参考にやってみましたが駄目でした。

NameError Traceback (most recent call last) <ipython-input-15-e69c2a9b090d> in <module> 20 ## FTP接続、ファイルアップロード 21 logger.debug('== Start FTP ==') ---> 22 with FTP() as ftp: 23 try: 24 ftp.connect(HOST, PORT) # ホスト、ポートを指定して接続 NameError: name 'FTP' is not defined

該当のソースコード

python

1import ftplib 2from logging import getLogger, StreamHandler, Formatter, DEBUG 3 4## ログ出力設定 5logger = getLogger("FTP Test") 6logger.setLevel(DEBUG) 7stream_handler = StreamHandler() 8stream_handler.setLevel(DEBUG) 9formatter = Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 10stream_handler.setFormatter(formatter) 11logger.addHandler(stream_handler) 12## 接続先ホスト 13HOST = 'ftp.*****.ne.jp' 14PORT = 16910 15USER = '*****' 16PASSWORD = '*****' 17DIRECTORY = '/' #直下にアップロード 18## アップロードファイル名 19FILE_NAME = r'C:\Users\tani\Desktop\test.html' 20## FTP接続、ファイルアップロード 21logger.debug('== Start FTP ==') 22with FTP() as ftp: 23 try: 24 ftp.connect(HOST, PORT) # ホスト、ポートを指定して接続 25 ftp.login(USER, PASSWORD) # ユーザID、パスワードを指定してログイン 26 ftp.cwd(DIRECTORY) # 指定のディレクトリに移動 27 with open(FILE_NAME, 'rb') as f: 28 ftp.storbinary('STOR ' + FILE_NAME, f) # 対象ファイルをアップロード 29 except ftplib.all_errors as e: 30 logger.error('FTP error = %s' % e) 31 else: 32 logger.debug('FTP success.') 33

補足情報(FW/ツールのバージョンなど)

Python 3.7.3
Windows7
jupyter notebook
chromedriver

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

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

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

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

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

nanami12

2019/12/25 07:41

何が駄目だったのでしょうか? どこまで、走行したのか確認はされましたか? FTPでの接続はできたのか、否か ファイルアップロードが出来ないのか どこまで、走行しているのかご自分でご確認されましたか?
Tochan

2019/12/25 10:10

回答ありがとうございます。 ジュピターノートブックで書いているのですが、特にエラーもでず、↓の様なメッセージがでてきました。 ''' 2019-12-25 18:58:50,590 - FTP Test - DEBUG - == Start FTP == 2019-12-25 18:58:51,283 - FTP Test - DEBUG - FTP success. ''' アップロードには成功しているのだと思うのですが、ffftpソフトでサーバー内を見てもアップロードさせていません。
guest

回答1

0

ベストアンサー

以下のように修正してください

python

1with ftplib.FTP() as ftp:

公式ドキュメントも参考にしてください
https://docs.python.org/ja/3/library/ftplib.html

投稿2019/12/25 07:44

shimizukawa

総合スコア1847

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

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

Tochan

2019/12/25 10:07

ありがとうございます。 「with FTP() as ftp:」を「with ftplib.FTP() as ftp:」に書き換えたところ成功しているようなのですが↓ファイルがアップされていません。 ''' 2019-12-25 18:58:50,590 - FTP Test - DEBUG - == Start FTP == 2019-12-25 18:58:51,283 - FTP Test - DEBUG - FTP success. ''' 他に考えられるのはサーバー側の問題など考えられるでしょうか? ffftpソフトでは書き換えたりアップロードは可能です。 pythonやコマンドラインなどでアップロードができないサーバー側の仕様など考えられるのでしょうか?
shimizukawa

2019/12/26 13:58

`ftp.storbinary('STOR ' + FILE_NAME, f)` としていますが、これだと `'STOR C:\Users\tani\Desktop\test.html'` になってしまいませんか? 実際に必要なのは `'STOR test.html'` だと思います。
Tochan

2019/12/27 09:47

test.htmlだけにしたところ上手くできました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問