从Python命令行获取字符串参数

从Python命令行获取字符串参数,python,arguments,Python,Arguments,运行Python脚本时,我需要一个可选参数: python3 myprogram.py afile.json 或 这就是我一直在尝试的: filename = 0 parser = argparse.ArgumentParser(description='Create Configuration') parser.add_argument('filename', type=str, help='optional filename') if filenam

运行Python脚本时,我需要一个可选参数:

python3 myprogram.py afile.json

这就是我一直在尝试的:

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”的变量中(如果提供的话)。显然这不起作用。有什么建议吗?

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

示例脚本:

import sys
print sys.argv
称之为:

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

如果您正在查找第一个参数,那么sys.argv[1]会起作用。更多信息。

请仔细阅读本教程

我认为您需要实际分析这些参数:

parser = argparse.ArgumentParser()
args = parser.parse_args()
然后文件名将可用
args.filename

parser = argparse.ArgumentParser()
args = parser.parse_args()