【问题标题】:how to upload ziped file on server via ftp [duplicate]如何通过 ftp 在服务器上上传压缩文件 [重复]
【发布时间】:2019-07-09 15:24:25
【问题描述】:

我在 python 中有这个代码,用于通过 ftp 在服务器上上传 photos.zip 文件。

import ftplib
session = ftplib.FTP('server.address.com','USERNAME','PASSWORD')
file = open('c:\archived\photos.zip','rb')                  # file to send
session.storbinary('STOR photos.zip', file)                 # send the file
file.close()                                                # close file and FTP
session.quit()

但我有这个错误: T

raceback (most recent call last):
File "a.py", line 24, in <module>
file = open('c:\archived\photos.zip','rb')
IOError: [Errno 22] invalid mode ('rb') or filename: 'c:\archived\photos.zip'

我也使用了这个解决方案:

file = open(os.path.join('c:/','archived','photos.zip'),'rb')

但我收到此错误:

Traceback (most recent call last):
  File "s.py", line 28, in <module>
    session.storbinary('s.zip', file)
  File "C:\Users\0xuser\Anaconda2\lib\ftplib.py", line 479, in storbinary
    conn = self.transfercmd(cmd, rest)
  File "C:\Users\0xuser\Anaconda2\lib\ftplib.py", line 378, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "C:\Users\0xuser\Anaconda2\lib\ftplib.py", line 341, in ntransfercmd
    resp = self.sendcmd(cmd)
  File "C:\Users\0xuser\Anaconda2\lib\ftplib.py", line 251, in sendcmd
    return self.getresp()
  File "C:\Users\0xuser\Anaconda2\lib\ftplib.py", line 226, in getresp
    raise error_perm, resp
ftplib.error_perm: 500 Unknown command.

【问题讨论】:

  • 您确定这是您收到的 exact 错误消息吗?在 Python 2.7.14 中,我得到了 ... or filename: 'c:\x07rchived\\photos.zip'——这表明了什么,问题是什么。
  • 我使用 Python 2.7.16 并收到此错误。为什么?

标签: python ftp upload


【解决方案1】:

你必须转义路径中的反斜杠:

file = open('c:\\archived\\photos.zip','rb')

【讨论】:

  • 此解决方案不起作用。请帮帮我。
  • 所以更新你的问题。
  • 所以你现在遇到了一个完全不同的问题,所以 “这个解决方案不起作用” 这不是真的——它确实有效! – 它带你走得更远(到一个不同的问题)。
  • 显示使用 ftplib 日志文件。设置FTP.set_debuglevel
【解决方案2】:

使用os.path.join 被认为更好。

file = open(os.path.join('c:/','archived','photos.zip'),'rb')

如果您想坚持自己的字符串,请使用\\ 而不是\

【讨论】:

  • 这个错误:>>> Traceback(最近一次调用最后):文件“tgs.py”,第 27 行,在 file = open(os.path.join('c:' ,'archived','photos.zip'),'rb') IOError: [Errno 2] No such file or directory: 'c:archived\\photos.zip'
  • 固定,应该是c:/
  • 这是一个不同的问题.. 请为它发布一个不同的问题
猜你喜欢
  • 1970-01-01
  • 2018-07-27
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 2011-04-06
  • 1970-01-01
相关资源
最近更新 更多