簡體   English   中英

如何將多個命令提交給Python子進程?

[英]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被關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM