如何通过FTP上传压缩文件?Python上传Zip代码报错求助
问题排查与解决
嘿,这个问题我太熟了!你遇到的IOError核心原因是Windows路径里的反斜杠\在Python字符串中是转义字符——你写的'c:\archived\photos.zip'里,\a会被Python解析成ASCII响铃符,而不是路径里的\a,这就导致Python识别的文件名完全不对,自然报错了。
给你三种简单的解决办法,任选其一就行:
方法1:用原始字符串(最推荐)
在路径字符串前面加个r,告诉Python“这就是原始字符串,别转义里面的字符”:
file = open(r'c:\archived\photos.zip','rb')
方法2:用双反斜杠代替单反斜杠
手动把每个反斜杠写成两个,这样Python就会把它当作普通的路径分隔符:
file = open('c:\\archived\\photos.zip','rb')
方法3:用正斜杠(跨平台友好)
其实Python在Windows系统下也支持用正斜杠/作为路径分隔符,这样完全不用操心转义的问题,还能让代码在Linux/macOS下也能用:
file = open('c:/archived/photos.zip','rb')
另外,给你提个小建议:用with语句来管理文件句柄会更健壮,它能自动帮你关闭文件,就算上传过程中出了异常也不会漏关:
import ftplib session = ftplib.FTP('server.address.com','USERNAME','PASSWORD') with open(r'c:\archived\photos.zip','rb') as file: session.storbinary('STOR photos.zip', file) session.quit()
内容的提问来源于stack exchange,提问作者erikson
相关产品推荐
相关产品推荐

