鍍金池/ 教程/ Python/ 使用 sys.argv
備份腳本——版本四
使用 <strong>init</strong> 方法
控制流
異常
表 15.1 一些特殊的方法
如何創(chuàng)建你自己的模塊
使用字典
前言
使用默認參數(shù)值
表 5.1 運算符與它們的用法
解決問題——編寫一個 Python 腳本
使用 for 語句
使用 continue 語句
使用元組輸出
對象與參考
使用函數(shù)形參
使用默認參數(shù)值
使用 if 語句
如何引發(fā)異常
使用源文件
使用對象的方法
使用表達式
定義函數(shù)
使用局部變量
使用列表綜合
使用 sys.argv
使用 lambda 形式
使用 global 語句
備份腳本——版本二
使用列表
使用 while 語句
備份腳本——版本一
使用元組
輸入/輸出
使用類與對象的變量
使用 sys 模塊
表 5.2 運算符優(yōu)先級
處理異常
使用 break 語句
函數(shù)
基本概念
運算符與表達式
介紹
使用文件
使用序列
接下來學(xué)習(xí)什么?
使用帶提示符的 Python 解釋器
使用 DocStrings
使用字面意義上的語句
最初的步驟
數(shù)據(jù)結(jié)構(gòu)
儲存與取儲存
使用 dir 函數(shù)
模塊
Python 標準庫
備份腳本——版本三(不工作!)
創(chuàng)建一個類
安裝 Python
面向?qū)ο蟮木幊?/span>
使用模塊的<strong>name</strong>
使用變量和字面意義上的常量
使用繼承

使用 sys.argv


    #!/usr/bin/python
    # Filename: cat.py

    import sys

    def readfile(filename):
    '''Print a file to the standard output.'''
    f = file(filename)
    while True:
    line = f.readline()
    if len(line) == 0:
    break
    print line, # notice comma
    f.close()

    # Script starts from here
    if len(sys.argv) < 2:
    print 'No action specified.'
    sys.exit()

    if sys.argv[1].startswith('--'):
    option = sys.argv[1][2:]
    # fetch sys.argv[1] but without the first two characters
    if option == 'version':
    print 'Version 1.2'
    elif option == 'help':
    print '''\
    This program prints files to the standard output.
    Any number of files can be specified.
    Options include:
      --version : Prints the version number
      --help: Display this help'''
    else:
    print 'Unknown option.'
    sys.exit()
    else:
    for filename in sys.argv[1:]:
    readfile(filename)

(源文件:code/cat.py

輸出


    $ python cat.py
    No action specified.

    $ python cat.py --help
    This program prints files to the standard output.
    Any number of files can be specified.
    Options include:
      --version : Prints the version number
      --help    : Display this help

    $ python cat.py --version
    Version 1.2

    $ python cat.py --nonsense
    Unknown option.

    $ python cat.py poem.txt
    Programming is fun
    When the work is done
    if you wanna make your work also fun:
            use Python!

它如何工作

這個程序用來模范 Linux/Unix 用戶熟悉的 cat 命令。你只需要指明某些文本文件的名字,這個程序會把它們打印輸出。

在 Python 程序運行的時候,即不是在交互模式下,在 sys.argv 列表中總是至少有一個項目。它就是當(dāng)前運行的程序名稱,作為 sys.argv[0](由于 Python 從 0 開始計數(shù))。其他的命令行參數(shù)在這個項目之后。

為了使這個程序?qū)τ脩舾佑押?,我們提供了一些用戶可以指定的選項來了解更多程序的內(nèi)容。我們使用第一個參數(shù)來檢驗我們的程序是否被指定了選項。如果使用了--version 選項,程序的版本號將被打印出來。類似地,如果指定了--help 選項,我們提供一些關(guān)于程序的解釋。我們使用 sys.exit 函數(shù)退出正在運行的程序。和以往一樣,你可以看一下 help(sys.exit)來了解更多詳情。

如果沒有指定任何選項,而是為程序提供文件名的話,它就簡單地打印出每個文件地每一行,按照命令行中的順序一個文件接著一個文件地打印。

順便說一下,名稱 cat 是 concatenate 的縮寫,它基本上表明了程序的功能——它可以在輸出打印一個文件或者把兩個或兩個以上文件連接/級連在一起打印。