2012-10-03 59 views
3

以字符串参数我需要一个可选的参数运行我的Python脚本时:从Python的命令行

python3 myprogram.py afile.json 

python3 myprogram.py 

这是我一直想:

filename = 0 
parser = argparse.ArgumentParser(description='Create Configuration') 
parser.add_argument('filename', type=str, 
        help='optional filename') 

if filename is not 0: 
    json_data = open(filename).read() 
else: 
    json_data = open('defaultFile.json').read() 

我希望能够将文件名保存在名为“文件名”的变量中(如果提供了)。显然这不起作用。有什么建议?

回答

4

检查sys.argv。它给出了一个包含脚本名称和任何命令行参数的列表。

示例脚本:

import sys 
print sys.argv 

调用它:

> python script.py foobar baz 
['script.py', 'foobar', 'baz'] 
4

如果你正在寻找的第一个参数sys.argv[1]的伎俩。更多信息here