2010-02-25 76 views

回答

2

不是一個Python的傢伙(但無論如何),但我Google-福發現這個假設你的意思是「處理命令行參數」:
http://www.faqs.org/docs/diveintopython/kgp_commandline.html

+2

FWIW,我知道這不是一個很好的答案,但它確實展示了自己看這些東西有多簡單。 – 2010-02-25 19:33:05

3

你是否在談論傳遞給python腳本的參數?

「病程可以通過

import sys 
print sys.argv 

訪問它們或者可以使用更復雜的getopt模塊。

0

或者你只是問如何打開命令行?

進入啓動菜單,單擊「運行」(或僅僅類型,在Windows 7中),輸入「cmd」

這將打開一個命令shell。 鑑於你的問題被標記爲python,我不確定它將被編譯成一個exe文件,你可能必須輸入「python(你的源代碼).py -safemode」。

0

其他意見解決了如何處理參數。如果你想讓你的python程序成爲一個exe文件,你可以看看py2exe

這不是必需的,但你提到APP.EXE而不是App.py

2

使用optparse.OptionParser

from optparse import OptionParser 
import sys 

def make_cli_parser(): 
    """Makes the parser for the command line interface.""" 
    usage = "python %prog [OPTIONS]" 
    cli_parser = OptionParser(usage) 
    cli_parser.add_option('-s', '--safemode', action='store_true', 
      help="Run in safe mode") 
    return cli_parser 

def main(argv): 
    cli_parser = make_cli_parser() 
    opts, args = cli_parser.parse_args(argv) 
    if opts.safemode: 
     print "Running in safe mode." 
    else: 
     print "Running with the devil." 


if __name__ == '__main__': 
    main(sys.argv[1:]) 

在使用中:

$ python opt.py 
Running with the devil. 
$ python opt.py -s 
Running in safe mode. 
$ python opt.py -h 

Usage: python opt.py [OPTIONS] 
Options: 
    -h, --help  show this help message and exit 
    -s, --safemode Run in safe mode 
+0

你能舉一個更簡單的例子嗎? = p – Shady 2010-02-25 17:36:00

7

我感覺到你也想產生一個「可執行文件」,你可以獨立運行....對於您使用的py2exe

這裏是一個完整example.py

import optparse 

parser = optparse.OptionParser() 

parser.add_option("-s", "--safemode", 
        default = False, 
        action = "store_true", 
        help = "Should program run in safe mode?") 

parser.add_option("-w", "--width", 
        type = "int", 
        default = 1024, 
        help = "Desired screen width in pixels") 

options, arguments = parser.parse_args() 

if options.safemode: 
    print "Proceeding safely" 
else: 
    print "Proceeding dangerously" 

if options.width == 1024: 
    print "running in 1024-pixel mode" 
elif options.width == 1920: 
    print "running in 1920-pixel mode" 

這裏是一個完整的setup.py會變成上述example.pyexample.exe(在dist子目錄):

from distutils.core import setup 
import py2exe 
import sys 

sys.argv.append('py2exe') 

setup(
    options = {'py2exe': dict(bundle_files=1, optimize=2)}, 
    console = ["example.py"], 
    zipfile = None, 
    ) 
+0

但是add_option裏面的內容我把源代碼放到了那個選項中? – Shady 2010-02-25 17:40:29

+0

'options,arguments = parser.parse_args()'將所有選項的標誌放入變量'options' ....然後由你​​來編寫一個'if'或者任何檢查這些標誌並運行代碼的東西你希望。 (你可以*從技術角度提供選項解析器的功能,但我認爲這是比較容易理解,如果你只是用它來解析,並設置標誌) – 2010-02-25 18:14:16

+0

我打算在這裏做3個命令行,巫每一個需要一個特定的決議...例如,應用程序。exe -1024將在1024x768運行該程序...在那裏我把分辨率代碼在那裏...我還沒有得到=/ – Shady 2010-02-25 21:46:18

0

你問的是有答案的幾個層次的問題。

首先,命令行被傳入數組sys.argv。 argv是C和Unix語言的歷史名稱。因此:

~/p$ cat > args.py 
import sys 
print "You have ", len(sys.argv), "arguments." 
for i in range(len(sys.argv)): 
print "argv[", i, "] = ", sys.argv[i] 

~/p$ python args.py 34 2 2 2 
You have 5 arguments. 
argv[ 0 ] = args.py 
argv[ 1 ] = 34 
argv[ 2 ] = 2 
argv[ 3 ] = 2 
argv[ 4 ] = 2 

這適用於MS Windows和Unix。第二,你可能會問:「我如何得到漂亮的參數?在 MS窗口中處理/幫助,還是在Linux中使用--help?」

那麼,有三個選擇,試圖做你想做的。兩個,optparsegetopt已經在標準庫中,而argparse正在進行中。所有這三個庫都以sys.argv字符串數組開頭,描述了您的命令行參數,並返回某種類型的數據結構或類,您可以從中獲得所需的選項。

  • getopt做最簡單的工作。它不提供「/ help」或「--help」。
  • optparse做了一個更詳細的工作。它提供「/ help」以及短期和長期版本的選項,例如「-v」和「--verbose」。
  • argparse處理廚房水槽,包括「/ help」,短期和長期命令, 以及子命令結構,如您在源代碼控制「git add ....」和 中看到的位置參數。

當你轉向更豐富的解析時,你需要給解析器更多關於你想要命令行參數的細節。例如,如果您希望使用--help參數來打印參數,則需要傳遞參數的長描述 。

第三,你可能會問一個工具,只是在命令行 的選項,環境變量和配置文件的交易。 Python目前每個都有單獨的工具 。也許我會寫一個統一的,你需要: - 由argparse或getopt等解析的命令行參數。 - 來自os.environ的環境變量[] - 來自ConfigFile或plistlib等的配置文件。 並建立自己的答案「什麼是設置」?

希望這完全回答你的問題

0

之一許多方面:

import sys 
print sys.argv 

>>>python arg.py arg1 arg2 
['arg.py', 'arg1', 'arg2'] 
 



sys.argv中是包含了所有的參數列表(腳本還名稱/程序)作爲字符串。

相關問題