[英]How can I submit multiple commands to a Python subprocess?
我正在嘗試使用子進程通過sftp與某些文件進行交互。 我可以連接並執行一個命令,但是該進程死了。 如何保持對此過程的控制,並保持sftp的動態?
import os
import subprocess
serverFiles = 'sftp.servername.com'
userFiles = 'myusername'
keyfileFiles = 'C:\\key\\file\\path'
with subprocess.Popen(['sftp','-Q','-i',keyfileFiles,userFiles+'@'+serverFiles], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT) as proc:
(out, err) = proc.communicate(input='ls -l'.encode())
print(out.decode())
#process dies. cannot proc.stdin.write, cannot proc.communicate
我的輸出向我顯示了歡迎標語,然后是頂級文件夾中的ls,然后該過程結束,並且以下所有命令錯誤proc
關閉,而proc
被關閉。
我建議使用Fabric庫。 它設計用於SSH和SFTP操作。
這里有一些資源可以向您展示如何使用它:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.