2

嗨,我在 microsoft windows xp v2002 service pack3 和 python 2.4.2 上使用 paramiko 1.7.6 “fanny”

我有以下脚本:

import paramiko

hostname='blah' 
port=22
username='blah'
password='blah'
fullpath='\\\\root\\path\\file.xls'
remotepath='/inbox/file.xls'

self.client= paramiko.SSHClient()
self.client.load_system_host_keys()
self.client.connect(hostname,port,username,password)
sftp = self.client.open_sftp()
sftp.put(fullpath,remotepath)

我得到的错误是:

sftp.put(fullpath,remotepath))

File "build\bdist.win32\egg\paramiko\sftp_client.py", line 577, in put
File "build\bdist.win32\egg\paramiko\sftp_client.py", line 337, in stat
File "build\bdist.win32\egg\paramiko\sftp_client.py", line 628, in _request
File "build\bdist.win32\egg\paramiko\sftp_client.py", line 675, in _read_response
File "build\bdist.win32\egg\paramiko\sftp_client.py", line 701, in _convert_status
IOError: [Errno 2] /inbox/file.xls is not a valid file path

但路径肯定存在(我可以使用 sftp.chdir('inbox') 进入它)我也尝试进入文件夹并使用 put 但我得到完全相同的错误(确实取出了收件箱前缀)

有人遇到过这个问题吗?

干杯马特

4

2 回答 2

1

我遇到过同样的问题。

签名指定 sftp_client.py def put(self, localpath, remotepath, callback=None, confirm=True):

大多数回答的论坛都将第一个参数称为远程路径。

如果我们将第一个更改为本地路径,将第二个更改为远程路径,它工作正常。

没有问题。

于 2011-07-28T02:31:13.893 回答
1

IOError: [Errno 2] /inbox/file.xls is not a valid file path

这是您的错误,这意味着 /inbox 不是有效路径。您可能打算使用

remotepath='inbox/file.xls'

于 2010-12-23T15:19:16.267 回答