既然你說你使用paramiko,直接寫入文件是完美的。編輯代碼以反映paramiko:
您可以在登錄到服務器後直接寫入文件,不需要傳入bash命令(這是一種黑客行爲)。 您將需要兩個try-catch's:一個用於在打開文件時捕獲任何錯誤,另一個用於捕獲文件中的任何寫入。如果您希望在這兩種情況下拋出異常,請移除try-catch。
import paramiko
*do your ssh stuff to establish an SSH session to server*
sftp = ssh.open_sftp()
try:
file = sftp.file('/home/user/textfile', 'a+')
try:
file.write(simplejson.dumps(d))
except IOError:
...*do some error handling for the write here*
except IOError:
...*do some error handling for being unable to open the file here*
else:
file.close()
sftp.close()
你爲什麼不寫,直接從Python中的文件,而不是生成的bash代碼? – Barmar 2015-02-06 03:17:54
可能重複[在Python中爲shell命令轉義字符串](http://stackoverflow.com/questions/18116465/escape-a-string-for-shell-commands-in-python) – Barmar 2015-02-06 03:20:12
@Barmar我正在使用paramiko將文本文件寫入另一臺機器。 – unice 2015-02-06 03:27:17