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

时间:2017-10-10 19:19:51

标签: 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并在该文件路径中创建一个目录。我尝试了许多不同的方法,但到目前为止没有运气,任何帮助都是真正的赞赏。

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"

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

2 个答案:

答案 0 :(得分:0)

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

IOError: [Errno 13] Permission denied: "C:\\new project\\new"

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

但无论如何,我会避免在文件名中使用空格,您应该将项目文件夹重命名为new_projectnewproject

如果您将目录压缩到单个存档文件(.tgz.zip或其他内容)并传输 文件,那么另一件会让您的生活更轻松的事情就是。< / p>

答案 1 :(得分:0)

问题是,您试图将文件另存为目录,至少以我的经验,这是在Permission Denied中引发pysftp错误的原因。

更改此行代码:

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

对此:

localpath="C:\\new project\\new\\infso.txt"

注意:infso.txt可以是您要命名要下载的本地文件的任何名称。为了对称和简单起见,我在此处使用的示例名称与远程文件的名称相同。

相关问题