ftplib问题没有放置文件

时间:2016-04-04 20:06:49

标签: python linux ftp ftplib

我正在尝试使用ftplib将文件放在服务器上但是我遇到了一些我不知道该怎么做的错误。登录有效,但尝试上传文件输出错误。 这是我正在使用的代码:

import ftplib
import os

def upload(ftp, file):
    ext = os.path.splitext(file)[1]
    if ext in (".txt", ".htm", ".html"):
        ftp.storlines("STOR " + file, open(file))
    else:
        ftp.storbinary("STOR " + file, open(file, "rb"), 1024)

ftp = ftplib.FTP("")
ftp.login("", "")

upload(ftp, "hist.txt")

错误日志是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in upload
  File "/home/root/anaconda2/lib/python2.7/ftplib.py", line 492, in storlines
    self.voidcmd('TYPE A')
  File "/home/root/anaconda2/lib/python2.7/ftplib.py", line 254, in voidcmd
    return self.voidresp()
  File "/home/root/anaconda2/lib/python2.7/ftplib.py", line 229, in voidresp
    resp = self.getresp()
  File "/home/root/anaconda2/lib/python2.7/ftplib.py", line 215, in getresp
    resp = self.getmultiline()
  File "/home/root/anaconda2/lib/python2.7/ftplib.py", line 201, in getmultiline
    line = self.getline()
  File "/home/root/anaconda2/lib/python2.7/ftplib.py", line 191, in getline
    if not line: raise EOFError
EOFError

这里发生了什么&gt;?

1 个答案:

答案 0 :(得分:0)

我能够通过设置必须在发送二进制文件之前完成的配置来解决此问题。 这是配置:

ftp.voidcmd('TYPE I')

我希望这也有助于其他人。