我想创建一个python脚本,使我能够通过sftp上传特定文件夹中的文件。这些目录总是一样的。 这就是我想出的:
import pysftp
import os
import shutil
cnopts = pysftp.CnOpts(knownhosts='~/.ssh/authorized_keys')
cnopts.hostkeys = None
host = "xxx"
password = "xxx"
username = "xxx"
srv = pysftp.Connection(host, username=username, password=password, cnopts=cnopts)
# src_files = os.listdir("C:/Users/uploads")
remotepath = "/home/work"
localpath = "C:/Users/uploads"
# with srv.cd('/home/work'): # chdir to work
with srv.cd():
srv.chdir('schedule')
srv.put_d(localpath, remotepath)
print('Upload done')
srv.close()
发生的事情是所有文件都被转移到文件夹/ home / work / schedule,但它们的名称就像这个“work。\ file name”。但我希望文件名相同。我试图排除用''替换它的远程路径,但文件仍被重命名为'\。\ file name' 这有什么问题?
正如你所看到的,我试图使用os和shutil,但这对我没有用。所以它仍然在代码中但不是必需的。
感谢您的输入
答案 0 :(得分:0)
with srv.cd(remotepath):
srv.put_d(localpath, 'schedule')