我想用Python上傳遠程服務器上的文件。我想事先檢查遠程路徑是否真的存在,如果不存在,則創建它。在僞代碼:在Python中使用SFTP上傳文件,但在路徑不存在的情況下創建目錄
if(remote_path not exist):
create_path(remote_path)
upload_file(local_file, remote_path)
我考慮的paramiko中執行一個命令來創建路徑(例如mkdir -p remote_path
)。我想出了這個:
# I didn't test this code
import paramiko, sys
ssh = paramiko.SSHClient()
ssh.connect(myhost, 22, myusername, mypassword)
ssh.exec_command('mkdir -p ' + remote_path)
ssh.close
transport = paramiko.Transport((myhost, 22))
transport.connect(username = myusername, password = mypassword)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(local_path, remote_path)
sftp.close()
transport.close()
但是,這種解決方案聽起來不太好,因爲我關閉連接,然後重新打開它。有沒有更好的方法來做到這一點?
有關:[py.py中的ftp的os.renames](http://stackoverflow.com/q/14641267/4279) – jfs 2013-02-15 18:20:46