簡體   English   中英

Python subprocess.call函數不重定向輸出

[英]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.4410運行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.

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