我需要在运行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()
我希望将文件名存储在名为“filename”的变量中,如果提供的话。显然这不起作用。有什么建议吗?
答案 0 :(得分:8)
请仔细阅读教程。 http://docs.python.org/howto/argparse.html
我相信你需要实际解析这些论点:
parser = argparse.ArgumentParser()
args = parser.parse_args()
然后文件名将可用args.filename
答案 1 :(得分:4)
检查sys.argv。它给出了一个列表,其中包含脚本名称和任何命令行参数。
示例脚本:
import sys
print sys.argv
致电:
> python script.py foobar baz
['script.py', 'foobar', 'baz']
答案 2 :(得分:4)
如果您正在寻找第一个参数sys.argv[1]
。更多信息here。