【Python】 linux中python命令的命令行參數


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就能查看,以下是一些常用參數使用實例和場景:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM