在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,它运行良好。