我想创建一个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.\文件名"。但我希望文件名相同。我试图排除远程路径将其替换为",但文件仍然被重命名为"\.\文件名"这里有什么问题?
如您所见,我尝试使用 os 和 shutil,但这对我来说不起作用。所以它仍然在代码中,但不是必需的。
感谢您的投入
让你试试:
with srv.cd(remotepath):
srv.put_d(localpath, 'schedule')