将文件上载到ftp服务器时出错

时间:2014-01-07 11:53:20

标签: python ftp

我有一个程序将文本文件发送到ftp服务器。代码是:

def sendBug():

    session = ftplib.FTP('ftp://xxxx.xxxx.xxxx.xxxx', " ", " ")
    bugfile = open(bugreport.txt, "r")
    session.storlines("STOR bugreport.txt", bugfile)
    bugfile.close()
    session.quit()

然而,当我运行该脚本时,我得到的是这样的东西:

Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
 File "C:\Users\Nitro\Desktop\py2exe stuff\school firewall ui.py", line 46, in getnews
ftp= ftplib.FTP(server)
File "C:\Python27\lib\ftplib.py", line 120, in __init__
self.connect(host)
File "C:\Python27\lib\ftplib.py", line 135, in connect
self.sock = socket.create_connection((self.host, self.port), self.timeout)
File "C:\Python27\lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11004] getaddrinfo failed

任何解决方法?我正在使用IIS托管一个ftp服务器。学校防火墙ui是我的计划。

1 个答案:

答案 0 :(得分:2)

第一个服务器行的

不需要"ftp://"

Basiclly gaierror: [Errno 11004] getaddrinfo failed表示ftp模块无法理解您给他的'ftp://xxxx.xxxx.xxxx.xxxx'地址 - 主机名。

来自文档的

gaierror

对于getaddrinfo()和getnameinfo(),会针对与地址相关的错误引发此异常。附带的值是一对(错误,字符串),表示库调用返回的错误。 string表示由gai_strerror()C函数返回的错误描述。错误值将匹配此模块中定义的一个EAI_ *常量。

您正在通过ftplib.FTP()传递主机,用户名和密码(用户和密码都是您的空间)

如果它应该是匿名的,只需使用:

ftp = ftplib.FTP('you address')     
ftp.login() 

如果仍然无效,请尝试ping您的地址或尝试连接一些已知的FTP以低估问题的位置。

你也可以尝试这个link非常有用

有关python FTP的更多信息,请尝试docs