系統 sys 模組

  1. Python 內建很多模組可以使用,其中 sys 模組可以控制 python shell 訊息,是常用的模組。以下範例列印 sys 四個函式:
    1. argv[0]:執行的腳本名稱。
    2. argv[1]:執行的腳本時,指定的第一個參數,可以指定很多參數,以 argv[n] 變數取得第 n 個參數。
    3. sys.version:列印 python 的版本。
    4. sys.stdin.readline()[:-1]:從鍵盤輸入,readline 函式讀取換行符號結束輸入,[:-1] 刪除讀取輸入的字串最後一個字元,也就是換行符號。
    5. sys.stdout.write("I like python.\n"):輸出到螢幕,\n 是換行符號。
    [dywang@deyu zzz]$ cat module7.py 
    #!/usr/bin/python3
    # coding: utf-8
    import sys
    
    print("script name:", sys.argv[0])
    print("The first argument:", sys.argv[1])
    print("python version:", sys.version)
    print("standard input:", sys.stdin.readline()[:-1])
    print("standard output:", sys.stdout.write("I like python.\n"))
    
  2. 執行結果:沒給任何參數,sys.argv[1] 是Null,所以回應 list index out of range。
    [dywang@deyu zzz]$ ./module7.py
    script name: ./module7.py
    Traceback (most recent call last):
      File "./module7.py", line 6, in <module>
        print("The first argument:", sys.argv[1])
    IndexError: list index out of range
    
  3. 執行結果:最後的 15 是 sys.stdout.write 的回傳值,也是其輸出的字元數。
    [dywang@deyu zzz]$ ./module7.py myfirstargv
    script name: ./module7.py
    The first argument: myfirstarg
    python version: 3.6.8 (default, Mar 19 2021, 05:13:41)
    [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
    sad
    standard input: sad
    I like python.
    standard output: 15