मैं पाइथन के साथ रिमोट सर्वर पर एक फ़ाइल अपलोड करना चाहता हूं। अगर मैं दूरस्थ पथ वास्तव में मौजूद हूं, और यदि ऐसा नहीं है, तो इसे पहले से जांचना चाहूंगा। स्यूडोकोड में:पायथन में एसएफटीपी का उपयोग कर फाइल अपलोड करें, लेकिन यदि पथ मौजूद नहीं है तो निर्देशिका बनाएं
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()
लेकिन यह समाधान मेरे लिए अच्छा नहीं लगता है, क्योंकि मैं कनेक्शन बंद करता हूं और फिर इसे दोबारा खोलता हूं। इसे करने का कोई बेहतर तरीका है? (... chdir, mkdir, आदि) उन
संबंधित: (http://stackoverflow.com/q/14641267/4279) – jfs