本節介紹常用的Python標準輸出重定向方式。這些方法各有優劣之處,適用于不同的場景。
控制臺重定向
最簡單常用的輸出重定向方式是利用控制臺命令。這種重定向由控制臺完成,而與Python本身無關。
Windows命令提示符(cmd.exe)和LinuxShell(bash等)均通過">"或">>"將輸出重定向。其中,">"表示覆蓋內容,">>"表示追加內容。類似地,"2>"可重定向標準錯誤。重定向到"nul"(Windows)或"/dev/null"(Linux)會抑制輸出,既不屏顯也不存盤。
以Windows命令提示符為例,將Python腳本輸出重定向到文件(為縮短篇幅已刪除命令間空行):
E:\>echoprint'hello'>test.py
E:\>test.py>out.txt
E:\>typeout.txt
hello
E:\>test.py>>out.txt
E:\>typeout.txt
hello
hello
E:\>test.py>nul
注意,在Windows命令提示符中執行Python腳本時,命令行無需以"python"開頭,系統會根據腳本后綴自動調用Python解釋器。此外,type命令可直接顯示文本文件的內容,類似Linux系統的cat命令。
LinuxShell中執行Python腳本時,命令行應以"python"開頭。除">"或">>"重定向外,還可使用tee命令。該命令可將內容同時輸出到終端屏幕和(多個)文件中,"-a"選項表示追加寫入,否則覆蓋寫入。示例如下(echo$SHELL或echo$0顯示當前所使用的Shell):
[wangxiaoyuan_@localhost~]$echo$SHELL
/bin/bash
[wangxiaoyuan_@localhost~]$python-c"print'hello'"
hello
[wangxiaoyuan_@localhost~]$python-c"print'hello'">out.txt
[wangxiaoyuan_@localhost~]$catout.txt
hello
[wangxiaoyuan_@localhost~]$python-c"print'world'">>out.txt
[wangxiaoyuan_@localhost~]$catout.txt
hello
world
[wangxiaoyuan_@localhost~]$python-c"print'Iam'"|teeout.txt
Iam
[wangxiaoyuan_@localhost~]$python-c"print'xywang'"|tee-aout.txt
xywang
[wangxiaoyuan_@localhost~]$catout.txt
Iam
xywang
[wangxiaoyuan_@localhost~]$python-c"print'hello'">/dev/null
[wangxiaoyuan_@localhost~]$
若僅僅想要將腳本輸出保存到文件中,也可直接借助會話窗口的日志抓取功能。
注意,控制臺重定向的影響是全局性的,僅適用于比較簡單的輸出任務。
以上內容為大家介紹了Python重定向方式,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/