|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 mchl.gao 于 2019-4-22 12:06 编辑
例如文件夹在C盘根目录下,名字是1,里面有不同格式的文件,但是再没有子文件夹了。要上传到FTP目录中的guest文件夹,guest的文件夹位置是/home/www/guest,权限是drwx-xr-x。我用别的FTP软件访问FTP,连接和上传下载都没有任何问题。
我开始的时候象下面这样写。
- import ftplib
- def ftpconnect():
- ftp_server = '192.168.1.21'
- username = '1234567'
- password = '123456789'
- timeout = 30
- port = 21
- ftp = ftplib.FTP()
- ftp.set_debuglevel(2)
- def uploadfile_to_FTP():
- ftp = ftpconnect()
- bufsize = 1024
- for filename in os.listdir(r"C:/1/"):
- remotepath = "/home/www/guest"+filename
- localpath = "C:/1/"+filename
- fp = open(localpath, 'rb')
- ftp.storbinary('STOR ' + remotepath, fp, bufsize)
- ftp.set_debuglevel(0)
- fp.close()
- ftp.quit()
复制代码
运行后无法开始上传,报错提示如下:
=================== RESTART: H:\my software\ftpbackup\test.py ===================
Traceback (most recent call last):
File "H:/my software/ftpbackup/test.py", line 19, in <module>
for filename in os.listdir(r"C:/1/"):
NameError: name 'os' is not defined
>>>
我以为是没有添加OS,然后把代码改成下面这样:
- import os
- import ftplib
- def ftpconnect():
- ftp_server = '192.168.1.21'
- username = '1234567'
- password = '123456789'
- timeout = 30
- port = 21
- ftp = ftplib.FTP()
- ftp.set_debuglevel(2)
- def uploadfile_to_FTP():
- ftp = ftpconnect()
- bufsize = 1024
- for filename in os.listdir(r"C:/1/"):
- remotepath = "/home/www/guest"+filename
- localpath = "C:/1/"+filename
- fp = open(localpath, 'rb')
- ftp.storbinary('STOR ' + remotepath, fp, bufsize)
- ftp.set_debuglevel(0)
- fp.close()
- ftp.quit()
复制代码
运行后还是无法开始上传,报错如下:
================= RESTART: H:\my software\ftpbackup\test.py =================
*cmd* 'TYPE I'
*put* 'TYPE I\r\n'
Traceback (most recent call last):
File "H:\my software\ftpbackup\test.py", line 24, in <module>
ftp.storbinary('STOR ' + remotepath, fp, bufsize)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\ftplib.py", line 503, in storbinary
self.voidcmd('TYPE I')
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\ftplib.py", line 277, in voidcmd
self.putcmd(cmd)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\ftplib.py", line 199, in putcmd
self.putline(line)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\ftplib.py", line 194, in putline
self.sock.sendall(line.encode(self.encoding))
AttributeError: 'NoneType' object has no attribute 'sendall'
>>>
请各位高手指教一下,到底是哪里出了问题。谢谢 |
|