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

python PYSTFTP[Errno 13]权限被拒绝:,python,permissions,ioerror,pysftp,Python,Permissions,Ioerror,Pysftp,我正在尝试从SFTP服务器复制文件。 我可以使用python-pysftp进行连接。 我可以跑: data = srv.listdir() for i in data: print I 我得到了目录列表。但是当我尝试的时候 sftp.put (localpath,"file_name.txt") 我明白了 “IOError:[Errno 13]权限被拒绝:'C:\…” 我拥有该文件夹的权限,因为我可以运行MKDIR,它会在该文件路径中创建一个目录。我已经尝试了很多不同的方法,但到目前为止没

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

data = srv.listdir()
for i in data:
print I
我得到了目录列表。但是当我尝试的时候

sftp.put (localpath,"file_name.txt") 
我明白了

“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() 

我得到以下错误代码:

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"
回溯(最近一次呼叫最后一次):
文件“db_backup.py”,第42行,在
sftpExample()
文件“db_backup.py”,第17行,在sftpExample中
put(localpath,“GT Dallas sftp infso.txt”)
文件“c:\Python27\lib\site packages\pysftp\\uuuu init\uuu.py”,第364行,输入
确认=确认)
文件“c:\Python27\lib\site packages\paramiko\sftp_client.py”,第720行,输入
将open(localpath,'rb')作为fl:
IOError:[Errno 13]权限被拒绝:“C:\\new project\\new”

我尝试了所有不同的方法来复制您看到的文件,但到目前为止我运气不好。

有一些事情可能会导致您的问题,但我注意到的是您的错误消息:

IOError: [Errno 13] Permission denied: "C:\\new project\\new"
您可能需要转义空格(
“\”
)或将其放入原始字符串
r“C:\My Path With Spaces”

但在任何情况下,我都会避免在文件名中使用空格,您应该将项目文件夹重命名为类似
new\u project
newproject
的名称


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

问题是你试图将一个文件保存为一个目录,至少在我的经验中,是在
pysftp
中抛出
权限被拒绝
错误的内容

更改此代码行:

localpath="C:\\new project\\new"
为此:

localpath="C:\\new project\\new\\infso.txt"
注意:
infso.txt
可以是要命名正在下载的本地文件的任何内容。为了对称和简单,我在这里使用了与您示例中远程文件名相同的名称