python pysftp [Errno 13] 权限被拒绝:

Sad*_*dem 5 python permissions ioerror pysftp

我正在尝试从 SFTP 服务器复制文件。我可以使用 python pysftp 进行连接。我可以跑:

data = srv.listdir()
for i in data:
print I
Run Code Online (Sandbox Code Playgroud)

我得到了目录列表。但是当我尝试

sftp.put (localpath,"file_name.txt") 
Run Code Online (Sandbox Code Playgroud)

我得到

“IOError:[Errno 13] 权限被拒绝:'C:\.....”

我对该文件夹有权限,因为我可以运行 MKDIR 并在该文件路径中创建一个目录。我已经尝试了许多不同的方法,但到目前为止没有运气,任何帮助都非常感谢。

import pysftp
import os

def sftpExample():
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None  

with pysftp.Connection('HOST', username='username', password='Password', cnopts=cnopts) as sftp  :

    print 'connected '
    localpath="C:\\new project\\new"
            remotepath="/folder1"
    sftp.put(localpath,"infso.txt")

sftp.put(localpath,remotepath)
sftp.getfo (remotepath, localpath )
srv.get_r(localpath,  remotepath)
srv.close()

sftpExample() 
Run Code Online (Sandbox Code Playgroud)

我收到此错误代码:

Traceback (most recent call last):
File "db_backup.py", line 42, in <module>
sftpExample()
File "db_backup.py", line 17, in sftpExample
sftp.put(localpath,"GT-Dallas SFTP infso.txt")
File "c:\Python27\lib\site-packages\pysftp\__init_.py", line 364, in put
confirm=confirm)
File "c:\Python27\lib\site-packages\paramiko\sftp_client.py", line 720, in put
with open(localpath, 'rb') as fl:
IOError: [Errno 13] Permission denied: "C:\\new project\\new"
Run Code Online (Sandbox Code Playgroud)

如您所见,我已经尝试了所有不同的方法来复制文件,但是到目前为止我还没有运气。

N. *_*ern 0

有几件事可能会导致您的问题,但对我来说最突出的一个来自您的错误消息:

IOError: [Errno 13] Permission denied: "C:\\new project\\new"
Run Code Online (Sandbox Code Playgroud)

您可能需要转义空格 ( "\ ") 或将其放入原始字符串中r"C:\My Path With Spaces"

但无论如何,我会避免在文件名中使用空格,并且您应该将项目文件夹重命名为new_project或 之类的名称newproject

另一件可以让您的生活更轻松的事情是,如果您将目录压缩为单个存档文件(.tgz.zip其他文件)并传输文件。