[英]Python subprocess.call function does not redirect output
我試圖在python文件中運行一個名為nn.sh
的shell腳本(它會隨着時間的推移不斷運行Linux命令)。 我使用以下代碼:
from subprocess import call, Popen, PIPE
call(['/bin/sh', 'nn.sh', '172.20.125.44', '10', '>>', 'log.txt'])
該代碼應該使用輸入172.20.125.44
和10
運行nn.sh
,並將結果存儲在文件log.txt
。 當我運行這個Python腳本時,它只顯示在屏幕上運行nn.sh
的結果,並且它不會將它們保存在填充log.txt
。 但是,如果我輸入
/bin/sh nn.sh 172.20.125.44 10 >> log.txt
在命令行中,它正確地將所有數據保存到文件log.txt
。 什么出錯的想法?
你不能在子進程調用中使用>>
,而是使用stdout
參數:
with open("log.txt", "at") as log:
call(['/bin/sh', 'nn.sh', '172.20.125.44', '10'], stdout = log)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.