'NoneType' object has no attribute 'sendall' PYTHON
FTP.quit() Send a QUIT command to the server and close the connection. This is the “polite” way to close a connection, but it may raise an exception if the server responds with an error to the QUIT command. This implies a call to the close() method which renders the FTP instance useless for subsequent calls (see below).
FTP.close() Close the connection unilaterally. This should not be applied to an already closed connection such as after a successful call to quit(). After this call the FTP instance should not be used any more (after a call to close() or quit() you cannot reopen the connection by issuing another login() method).
Just erase ftp.close()
, since ftp.quit()
implies call .close()
function you're telling to close two times, and then quit falls because socket was already closed.
Alvin Wee
Updated on July 26, 2022Comments
-
Alvin Wee almost 2 years
My current python script:
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()
Anybody know this error? I trying to send file over to another folder via ftp.
The error i got when running the script:
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'