Python命令行參數
原文地址:http://blog.163.com/weak_time/blog/static/25852809120169333247925/
Python的命令行參數,提供了很多有用的功能,可以方便調試和運行,通過man python就能查看,以下是一些常用參數使用實例和場景:
● -B參數,在import時候,不產生pyc或者pyo文件:
比如有a.py,內容如下:
def hello():
pass
main.py,會引用a.py中的hello函數:
from a import hello
if __name__ == '__main__':
print hello
使用python -B main.py就不會產生a.pyc文件
● -c 參數,直接運行python語句,比如:
python -c "print 'Hello world'"
或者測試安裝的包是否可以成功引用,可以使用import語句嘗試:
python -c "import requests;print dir(requests)"
● -i 參數,運行完python腳本文件以后打開一個python環境,方便查看運行結果,比如:
from a import hello
a = 1
if __name__ == '__main__':
print hello
使用-i參數:
python -i main.py
<function hello at 0x101409c08>
>>> a
1
● -m 參數,將模塊按照腳本執行,最常見的用法是:
python -m SimpleHTTPServer 8081
在打開瀏覽器的8081端口,可以用於局域網的簡單文件下載服務。
● -V 參數,輸出Python的版本,或者--version:
python -V
Python 2.7.10
python --version
Python 2.7.10
● -O 參數,產生一個優化的pyo文件(和-B 參數一起使用無效):
python -O main.py
<function hello at 0x10abb7c08>
這時候會有一個a.pyo文件
● -v 參數,會輸出每一個模塊引用信息,包括從何處引用的,以及何時被清除的
● -u 參數,在print記錄時候很有用,使用這個參數 會強制 stdin, stdout 和 stderr變為無緩沖的,會立刻輸出出來,而不是等緩沖區滿了才會打印數據。
比如如下代碼:
from time import sleep
for i in range(10):
print i
sleep(1)
運行時候重定向到一個文件:
python main.py > ok.log
會等到緩沖區滿了,或者程序退出了才會真正寫入到ok.log
這時候使用 python -u main.py > ok.log 執行,就會每次print后立刻寫入文件。
Python的命令行參數,提供了很多有用的功能,可以方便調試和運行,通過man python就能查看,以下是一些常用參數使用實例和場景: