Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用sftp将文件从本地服务器移动到远程服务器_Python_Sftp_Pysftp - Fatal编程技术网

在python中使用sftp将文件从本地服务器移动到远程服务器

在python中使用sftp将文件从本地服务器移动到远程服务器,python,sftp,pysftp,Python,Sftp,Pysftp,我想将所有文件从本地目录复制到远程目录。为此,我使用了pysftp库。下面的代码没有显示任何错误,但我的本地文件也没有传输到远程服务器 我的代码: import pysftp remotepath = '/home/a7user/sftp/sftp/CentralData/' localpath = 'E:\\backup\\' cnopts = pysftp.CnOpts() cnopts.hostkeys = None with pysftp.Connection(host='xx.xxx

我想将所有文件从本地目录复制到远程目录。为此,我使用了
pysftp
库。下面的代码没有显示任何错误,但我的本地文件也没有传输到远程服务器

我的代码:

import pysftp
remotepath = '/home/a7user/sftp/sftp/CentralData/'
localpath = 'E:\\backup\\'
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None

with pysftp.Connection(host='xx.xxx.xx.xx',username='user',password='5fTPt00',cnopts=cnopts) as sftp:

 sftp.put_d(localpath,remotepath)
 print('Upload finished')

我做错了什么?

很可能你真正想用的是
put\r()
,而不是
put\d()

从外观上看,登录PySTFP并不容易。假设put_d是正确的方法(它不是递归的-这就是put_r),我认为最好的方法是编辑PySTFP的本地副本,将打印语句添加到walktree()和put_d()以查看它在做什么。还值得检查一下,您是否可以使用cd和put传输单个文件。在创建连接并将日志输出添加到问题中时,是否可以添加log=1?将pysftp.Connection(host='xx.xxx.xx.xx',username='user',password='5fTPt00',cnopts=cnopts,log=1)作为sftp:如果是这样的话,那么
put\u r
可能也不会有帮助,因为我相信(不在Windows上工作,OP需要什么)。谢谢@LieRyan put\u r()为我工作,实际问题是最新版本。当我在3.5版本中测试时,我的版本是3.7,它运行良好。