2017-08-04 185 views
2

因此,我有一個python腳本輸出文本到控制檯,我需要記錄到一個文件,而腳本是相當複雜的,我不編碼python,所以我寧願不改變它。如何將python腳本cmd輸出重定向到文件?

我想這樣做

>python script.py arg1 arg2 ... argn > "somefile.txt" 

但它不會工作,我的猜測是,蟒蛇需要>"somefile.txt"作爲參數..

才能實現這一目標,以及如何?

+1

你的猜測是錯誤的。它以什麼方式不起作用?你看到了什麼? – immortal

+0

我在控制檯中看到輸出,並且沒有創建文件。 –

+0

什麼外殼?你的腳本如何打印輸出? – immortal

回答

3

$ (python script.py one two) > test.txt

或者,如果你想看到的輸出,並把它寫入一個文件:

$ python script.py one two | tee test.txt

如果仍然沒有寫入文件,請嘗試重新定向STDERR

$ python script.py one two 2>&1 | tee test.txt

+1

嘗試使用括號創建文件,並且文件被創建,但輸出未重定向且文件保持空白。對不起,但我不明白你的語法其餘..通過'$'你暗示Linux bash?因爲我在談論Windows命令提示符 –

+0

是的,得到了​​''tee'不被識別爲內部或外部命令...「 –

+0

@GarinGG,Windows沒有與'tee'命令一起分發。你可以安裝一個,但你並沒有問過這個問題。只需通過'> somefile.txt'重定向stdout,然後通過'2>&1'將stderr重定向到stdout(即同一個文件)。 – eryksun

0

將這些代碼行添加到軋製python文件。

import sys 
sys.stdout = open('somefile.txt', 'w') 

這是將sys.stdout設置爲您選擇的文件對象。

相關問題