[問題] Popen印出訊息到stdout並存到變數
請問 subprocess.Popen 呼叫另一個程式的問題
需求是呼叫另一個程式將程式執行過程印出到畫面(stdout)之外
同時把執行過程存到變數裡做後續判斷
例子如下, hello.py 要求使用者輸入資料並印出,另一個程式 test.py呼叫 hello.py
想要儲存 hello.py 的執行過程,但是如果設定stdout=PIPE,執行過程就不會顯示提示
要使用者輸入資料
不知道該怎麼設定?
hello.py
if __name__=='__main__':
name = input("please enter your name : ")
print("hello, "+name)
test.py
def run_cmd(cmd):
process = subprocess.Popen(cmd, universal_newlines=True, shell=True,
stdout=PIPE, stderr=PIPE)
stdout, stderr = process.communicate()
ret = process.returncode
return ret, stdout, stderr
def main():
retval, output, stderr = run_cmd("hello.py")
print(f"\nResult:\n{output}")
sys.exit(0)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.172.71.29 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1713156607.A.E66.html
※ 編輯: clanguage (218.172.71.29 臺灣), 04/15/2024 12:50:47
※ 編輯: clanguage (218.172.71.29 臺灣), 04/15/2024 12:51:28
推
04/15 12:56,
8月前
, 1F
04/15 12:56, 1F
推
04/15 13:07,
8月前
, 2F
04/15 13:07, 2F
→
04/15 13:07,
8月前
, 3F
04/15 13:07, 3F
→
04/15 13:08,
8月前
, 4F
04/15 13:08, 4F
推
04/15 13:11,
8月前
, 5F
04/15 13:11, 5F
→
04/15 13:11,
8月前
, 6F
04/15 13:11, 6F
→
04/15 13:11,
8月前
, 7F
04/15 13:11, 7F
→
04/15 13:11,
8月前
, 8F
04/15 13:11, 8F
→
04/15 13:11,
8月前
, 9F
04/15 13:11, 9F
→
04/15 13:11,
8月前
, 10F
04/15 13:11, 10F
→
04/15 13:11,
8月前
, 11F
04/15 13:11, 11F
→
04/15 14:04,
8月前
, 12F
04/15 14:04, 12F
→
04/15 19:58,
8月前
, 13F
04/15 19:58, 13F
Python 近期熱門文章
PTT數位生活區 即時熱門文章