[英]Take string argument from command line?
I need to take an optional argument when running my Python script:运行我的 Python 脚本时,我需要使用一个可选参数:
python3 myprogram.py afile.json
or或者
python3 myprogram.py
This is what I've been trying:这就是我一直在尝试的:
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()
I was hoping to have the filename stored in my variable called "filename" if it was provided.如果提供了文件名,我希望将文件名存储在名为“文件名”的变量中。 Obviously this isn't working.
显然这是行不通的。 Any advice?
有什么建议吗?
Please read the tutorial carefully. 请仔细阅读教程。 http://docs.python.org/howto/argparse.html
http://docs.python.org/howto/argparse.html
i believe you need to actually parse the arguments: 我相信你需要实际解析这些论点:
parser = argparse.ArgumentParser()
args = parser.parse_args()
then filename will be come available args.filename
然后文件名将出现
args.filename
Try argparse's default parameter, its well documented.尝试 argparse 的默认参数,它有据可查。
import argparse
parser = argparse.ArgumentParser(description='Create Configuration')
parser.add_argument('--file-name', type=str, help='optional filename',
default="defaultFile.json")
args = parser.parse_args()
print(args.file_name)
Output: Output:
$ python open.py --file-name option1
option1
$ python open.py
defaultFile.json
Alternative library :替代图书馆:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.