2017-03-26 79 views
1

我想創建一個python腳本,使我能夠通過sftp上傳特定文件夾中的文件。目錄總是一樣的。 這是我想出了:使用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() 

請告訴我發生的事情是,所有的文件被轉移到該文件夾​​/家庭/工作/計劃但它們被命名爲這樣。「工作\文件名」。但我想要的文件名是相同的。我試圖排除用''替換它的remotepath,但仍然將文件重命名爲'\。\文件名' 這裏有什麼問題?

正如你所看到的,我試圖與os和shutil一起工作,但那並不適合我。所以它仍然在代碼中,但沒有必要。

謝謝您的輸入

回答

0

有嘗試:

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

感謝您的快速反應。我嘗試過這個。結果是我的文件被放在服務器上的「work」文件夾中,文件名爲「schedule \。\ test.txt」,所以文件仍然被重命名。 – Burray