使用python上传sftp文件 - 避免文件重命名

时间:2017-03-26 11:08:53

标签: python

我想创建一个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,但这对我没有用。所以它仍然在代码中但不是必需的。

感谢您的输入

1 个答案:

答案 0 :(得分:0)

你尝试过试试:

with srv.cd(remotepath):
    srv.put_d(localpath, 'schedule')