2016-08-10 63 views
2

私の現在のPythonスクリプトを持っていない:は 'NoneType' オブジェクトには属性 'sendall' PYTHON

import os 
import ftplib 
import hashlib 
import glob 


hashing = "123" 
m = hashlib.md5() 
m.update(hashing) 
dd = m.hexdigest() 

ftp = ftplib.FTP('localhost','kevin403','S$ip1234') 
ftp.cwd('/var/www/html/image') 

for image in glob.glob(os.path.join('Desktop/images/test*.png')): 
    with open(image, 'rb') as file: 
    ftp.storbinary('STOR '+dd+ '.png', file) 

ftp.close() 
ftp.quit() 

誰もがこのエラーを知っていますか?私はftp経由で別のフォルダにファイルを送信しようとしています。

スクリプトを実行しているときに私が得たエラー:

Traceback (most recent call last): 
File "/home/kevin403/wwq.py", line 21, in <module> 
    ftp.quit() 
File "/usr/lib/python2.7/ftplib.py", line 591, in quit 
    resp = self.voidcmd('QUIT') 
File "/usr/lib/python2.7/ftplib.py", line 253, in voidcmd 
    self.putcmd(cmd) 
File "/usr/lib/python2.7/ftplib.py", line 181, in putcmd 
    self.putline(line) 
File "/usr/lib/python2.7/ftplib.py", line 176, in putline 
    self.sock.sendall(line) 
AttributeError: 'NoneType' object has no attribute 'sendall' 
+1

スタックトレースを追加できますか? – Raskayu

+1

@Raskayu私はちょうど追加しました –

+0

答えたaded、それをチェックアウト – Raskayu

答えて

2

FTP.quit() は、サーバにQUITコマンドを送信し、接続を閉じます。これは接続を閉じるための "丁寧な"方法ですが、サーバーがQUITコマンドにエラーで応答すると例外が発生する可能性があります。これは、FTPインスタンスを後続の呼び出しでは役に立たないようにするclose()メソッドを呼び出すことを意味します(下記参照)。

FTP.close() 接続を一方的に閉じます。これは、quit()の呼び出しが成功した後など、すでに閉じられている接続には適用しないでください。この呼び出しの後、FTPインスタンスをもう使用しないでください(close()またはquit()の呼び出しの後で別のlogin()メソッドを発行して接続を再オープンすることはできません)。

ftp.quit()あなたは2回を閉じるために言っているコール.close()機能を意味し、そしてソケットがすでに閉鎖されたため、その後、滝を終了するのでちょうどftp.close()を消去します。

FTPlib Documentation

関連する問題