我試圖將所有的stdout重定向到文件out.txt。但是第一個命令的輸出顯示在終端上,其餘的則輸入到文件中。我不確定下面這段代碼有什麼問題。並非所有的輸出都被重定向到Python中的文件中
import os
import sys
import subprocess
orig_stdout = sys.stdout
f = file('out.txt', 'w')
sys.stdout = f
os.system("date") #First command
cmd = ["ls", "-al"]
exe_cmd = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output, err = exe_cmd.communicate()
print output #Second command
sys.stdout = orig_stdout
你觀察到什麼,這導致你得出結論:'並不是所有的輸出都被重定向到文件中? – inspectorG4dget
爲什麼不只是'stdout = f'? –