Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-ftputil奇怪的行为_Python_Ftp_File Transfer_Ftputil - Fatal编程技术网

python-ftputil奇怪的行为

python-ftputil奇怪的行为,python,ftp,file-transfer,ftputil,Python,Ftp,File Transfer,Ftputil,我有一个代码,看起来像: host = ftputil.FTPHost("ftp.example.com","anonymous","") try: os.mkdir('./ftp.example.com') except: traceback.print_exc() else: sys.stderr.write('WTF?') for root,dirs,files in host.walk('/Path/to/a/lot/of/census/data/files/

我有一个代码,看起来像:

host = ftputil.FTPHost("ftp.example.com","anonymous","")

try:
    os.mkdir('./ftp.example.com')
except:
    traceback.print_exc()
else:
    sys.stderr.write('WTF?')

for root,dirs,files in host.walk('/Path/to/a/lot/of/census/data/files/',topdown=True,onerror=None):
    for filename in files:
        fullpath = os.path.join(root,filename)
        #print fullpath,host.lstat(fullpath)[6],int(host.lstat(fullpath)[8])
        try:
            host.download_if_newer(fullpath,'./ftp.example.com/'+filename,callback=None)
        except:
            traceback.print_exc()
一段时间后,以下异常开始淹没终端屏幕:

*cmd* 'PWD'
*resp* '257 "/Path/to/a/lot/of/census/data/files/xx"'
*cmd* u'CWD /Path/to/a/lot/of/census/data/files/xx'
*resp* '257 "/Path/to/a/lot/of/census/data/files/xx"'
*cmd* u'TYPE I'
*resp* '250 Directory successfully changed.'
*cmd* 'PASV'
*resp* '200 Switching to Binary mode.'
Traceback (most recent call last):
  File "bdpublicdata.py", line 56, in <module>
    host.download_if_newer(fullpath,'./ftp.example.com/'+filename,callback=None)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/host.py", line 521, in download_if_newer
    callback=callback)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/file_transfer.py", line 176, in copy_file
    source_fobj = source_file.fobj()
  File "/usr/local/lib/python2.7/dist-packages/ftputil/file_transfer.py", line 91, in fobj
    return self._host.open(self.name, self.mode)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/host.py", line 204, in open
    encoding=encoding, errors=errors, newline=newline)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/file.py", line 194, in _open
    self._conn = self._session.transfercmd(command)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/error.py", line 168, in __exit__
    raise FTPIOError(*exc_value.args)
FTPIOError: 200 Switching to Binary mode.
Debugging info: ftputil 3.1, Python 2.7.6 (linux2)
*cmd* 'PWD'
*resp* '227 Entering Passive Mode (126,218,41,23,59,181)'
Traceback (most recent call last):
  File "bdpublicdata.py", line 56, in <module>
    host.download_if_newer(fullpath,'./ftp.example.com/'+filename,callback=None)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/host.py", line 521, in download_if_newer
    callback=callback)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/file_transfer.py", line 176, in copy_file
    source_fobj = source_file.fobj()
  File "/usr/local/lib/python2.7/dist-packages/ftputil/file_transfer.py", line 91, in fobj
    return self._host.open(self.name, self.mode)
  File "/usr/local/lib/python2.7/dist-packages/ftputil/host.py", line 181, in open
    host = self._available_child()
  File "/usr/local/lib/python2.7/dist-packages/ftputil/host.py", line 159, in _available_child
    host._session.pwd()
  File "/usr/lib/python2.7/ftplib.py", line 587, in pwd
    return parse257(resp)
  File "/usr/lib/python2.7/ftplib.py", line 855, in parse257
    raise error_reply, resp
error_reply: 227 Entering Passive Mode (126,218,41,23,59,181)
*cmd*“PWD”
*resp*'257“/Path/to/a/lot/of/census/data/files/xx”
*cmd*u'CWD/Path/to/a/lot/of/census/data/files/xx'
*resp*'257“/Path/to/a/lot/of/census/data/files/xx”
*cmd*u'TYPE I'
*resp*“250目录已成功更改。”
*cmd*‘PASV’
*resp*“200切换到二进制模式。”
回溯(最近一次呼叫最后一次):
文件“bdpublicdata.py”,第56行,在
host.download_if_更新(完整路径“./ftp.example.com/”+文件名,callback=None)
文件“/usr/local/lib/python2.7/dist-packages/ftputil/host.py”,第521行,下载
回调=回调)
文件“/usr/local/lib/python2.7/dist packages/ftputil/File_transfer.py”,第176行,在copy_文件中
source_fobj=source_file.fobj()
fobj中的文件“/usr/local/lib/python2.7/dist packages/ftputil/File_transfer.py”,第91行
返回self.\u host.open(self.name,self.mode)
文件“/usr/local/lib/python2.7/dist packages/ftputil/host.py”,第204行,打开
编码=编码,错误=错误,换行符=换行符)
文件“/usr/local/lib/python2.7/dist packages/ftputil/File.py”,第194行,打开
self.\u conn=self.\u session.transfercmd(命令)
文件“/usr/local/lib/python2.7/dist packages/ftputil/error.py”,第168行,在退出时__
提高FTPIOError(*exc_value.args)
FTP错误:200切换到二进制模式。
调试信息:ftputil3.1,python2.7.6(linux2)
*cmd*‘PWD’
*resp*‘227进入被动模式(126218,41,23,59181)’
回溯(最近一次呼叫最后一次):
文件“bdpublicdata.py”,第56行,在
host.download_if_更新(完整路径“./ftp.example.com/”+文件名,callback=None)
文件“/usr/local/lib/python2.7/dist-packages/ftputil/host.py”,第521行,下载
回调=回调)
文件“/usr/local/lib/python2.7/dist packages/ftputil/File_transfer.py”,第176行,在copy_文件中
source_fobj=source_file.fobj()
fobj中的文件“/usr/local/lib/python2.7/dist packages/ftputil/File_transfer.py”,第91行
返回self.\u host.open(self.name,self.mode)
打开文件“/usr/local/lib/python2.7/dist packages/ftputil/host.py”,第181行
主机=self.\u可用\u子项()
文件“/usr/local/lib/python2.7/dist-packages/ftputil/host.py”,第159行,在子文件中
host._session.pwd()
文件“/usr/lib/python2.7/ftplib.py”,第587行,在pwd中
返回解析257(resp)
parse257中的文件“/usr/lib/python2.7/ftplib.py”,第855行
分别提出错误回复
错误回复:227进入被动模式(126218,41,23,59181)
我永远无法从主机检索整个目录树

有什么想法吗