未找到Python SFTP文件错误

未找到Python SFTP文件错误,python,ftp,sftp,Python,Ftp,Sftp,我正在尝试使用pysftp库将SFTP目录中的所有文件下载到本地文件夹。我的代码如下所示: import pysftp sftp = pysftp.Connection('server', username = 'name', password = 'password') sftp.get_d('Daily_Reports', '/home/jchrysostom/Documents/SupplyChain/Daily_Reports/') Daily_Reports是一个存在于SFTP服

我正在尝试使用
pysftp
库将SFTP目录中的所有文件下载到本地文件夹。我的代码如下所示:

import pysftp

sftp = pysftp.Connection('server', username = 'name', password = 'password')

sftp.get_d('Daily_Reports', '/home/jchrysostom/Documents/SupplyChain/Daily_Reports/')
Daily_Reports
是一个存在于SFTP服务器上的文件夹-我已对此进行了验证。我还验证了
/home/jchrysostom/Documents/SupplyChain/Daily_Reports/
是否存在。我可以
cd
毫无问题地在终端上下载它

但是,当我运行这个python脚本时,会出现以下错误:
IOError:[Errno 2]未找到文件。

你知道这是什么原因吗

更新:一点调查表明这些文件实际上已经下载了。事实上,他们都下载得很好。但是,我无法运行脚本的其余部分,因为它由于某种原因出错。这只是图书馆里的一个错误吗

更新2-根据要求进行完全回溯:

Traceback (most recent call last):
  File "supplychain.py", line 20, in <module>
    sftp.get_d('Daily_Reports','/home/jchrysostom/Documents/SupplyChain/Daily_Reports/')
  File "/usr/local/lib/python2.7/dist-packages/pysftp.py", line 255, in get_d
    preserve_mtime=preserve_mtime)
  File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
    self.gen.next()
  File "/usr/local/lib/python2.7/dist-packages/pysftp.py", line 497, in cd
    self.cwd(original_path)
  File "/usr/local/lib/python2.7/dist-packages/pysftp.py", line 510, in chdir
    self._sftp.chdir(remotepath)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 580, in chdir
    if not stat.S_ISDIR(self.stat(path).st_mode):
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 413, in stat
    t, msg = self._request(CMD_STAT, path)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 729, in _request
    return self._read_response(num)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 776, in _read_response
    self._convert_status(msg)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 802, in _convert_status
    raise IOError(errno.ENOENT, text)
IOError: [Errno 2] File not found
回溯(最近一次呼叫最后一次):
文件“supplychain.py”,第20行,在
sftp.get_d('Daily_Reports','/home/jchrysostom/Documents/SupplyChain/Daily_Reports/'))
文件“/usr/local/lib/python2.7/dist packages/pysftp.py”,第255行,在get\d中
preserve\u mtime=preserve\u mtime)
文件“/usr/lib/python2.7/contextlib.py”,第24行,在__
self.gen.next()
文件“/usr/local/lib/python2.7/dist-packages/pysftp.py”,第497行,cd格式
self.cwd(原始路径)
chdir中的文件“/usr/local/lib/python2.7/dist-packages/pysftp.py”,第510行
self.\u sftp.chdir(远程路径)
chdir中的文件“/usr/local/lib/python2.7/dist packages/paramiko/sftp_client.py”,第580行
如果不是stat.S_ISDIR(self.stat(path).st_模式):
文件“/usr/local/lib/python2.7/dist packages/paramiko/sftp_client.py”,第413行,在stat中
t、 msg=self.\u请求(CMD\u STAT,path)
文件“/usr/local/lib/python2.7/dist packages/paramiko/sftp_client.py”,第729行,在请求中
返回self.\u读取\u响应(num)
文件“/usr/local/lib/python2.7/dist packages/paramiko/sftp_client.py”,第776行,在“读取”响应中
自我转换状态(msg)
文件“/usr/local/lib/python2.7/dist packages/paramiko/sftp_client.py”,第802行,处于转换状态
raise IOError(errno.enoint,text)
IOError:[Errno 2]未找到文件

据我所知,这是
pysftp
中的一个bug。文件复制成功,但(至少根据此处的回溯)库在尝试更改回FTP服务器上的原始远程工作目录时发生爆炸

解决方法是迭代目录中的文件,并分别执行
get()

for filename in sftp.listdir('Daily_Reports'):
    sftp.get('Daily_Reports/' + filename, localpath = '/home/jchrysostom/Documents/SupplyChain/Daily_Reports/' + filename)

你能发布完整的追踪吗?是的。刚刚给你加的。