У меня есть следующий код с инициализацией учетных данных. Распечатка работ по листингу каталогов, однако «получить» не удалась со следующим исключениемparamiko sftp получить ошибку
Мне кажется, что это ошибка при предварительной выборке, так как я извлек код в getfo и заставил его работать как функция в моем коде с комментариями с предварительной выборкой вне.
Есть ли лучшее решение?
*** Caught exception: <type 'exceptions.IOError'>: [Errno 2] The message [/Inbox/CD.BAIINT.D130802.T200541.M856559] is not extractable!
Traceback (most recent call last):
File "C:\Projects\Python\SFTP\SFTPHSC.py", line 71, in <module>
sftp.get(files, localpath + "/" + files)
File "build\bdist.win-amd64\egg\paramiko\sftp_client.py", line 676, in get
size = self.getfo(remotepath, fl, callback)
File "build\bdist.win-amd64\egg\paramiko\sftp_client.py", line 640, in getfo
file_size = self.stat(remotepath).st_size
File "build\bdist.win-amd64\egg\paramiko\sftp_client.py", line 337, in stat
t, msg = self._request(CMD_STAT, path)
File "build\bdist.win-amd64\egg\paramiko\sftp_client.py", line 689, in _request
return self._read_response(num)
File "build\bdist.win-amd64\egg\paramiko\sftp_client.py", line 736, in _read_response
self._convert_status(msg)
File "build\bdist.win-amd64\egg\paramiko\sftp_client.py", line 762, in _convert_status
raise IOError(errno.ENOENT, text)
IOError: [Errno 2] The message [/Inbox/CD.BAIINT.D130802.T200541.M856559] is not extractable!
username = ''
password=''
hostname =''
port=22
localpath ="c:/BkFiles/"
t = paramiko.Transport((hostname, port))
try:
t.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(t)
dirlist = sftp.listdir('.')
print "Dirlist:", dirlist
sftp.chdir('Inbox')
dirlist = sftp.listdir('.')
print "Dirlist:", dirlist
for files in dirlist:
sftp.get(files, localpath + files)
print files
except Exception, e:
print '*** Caught exception: %s: %s' % (e.__class__, e)
traceback.print_exc()
finally:
try:
t.close()
except:
pass
Вы проверили, чтобы увидеть, если это ошибка учетных данных? Какую операционную систему ты используешь? Файлы, которые вы пытаетесь извлечь, сгенерированные программой с использованием другого UID из этого скрипта? – AlexLordThorsen
Учетные данные верны. Как я уже сказал в своем сообщении, я могу распечатать файлы в каталоге. Кроме того, я смог взломать эту проблему, скопировав код для функции getfo из sftp_client.py и вызвав ее непосредственно после комментирования вызова для предварительной выборки. –