如何将参数名称从Python argparse写入文件



我想使用argparse来编写参数名称&它接收到的值。到目前为止,我有这个:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--infile", help = "seed file", default = 'test')
parser.add_argument("--lang", help="wiki language bigram", default = 'en')
parser.add_argument("--request_type", help="request type", default = 'sum')
parser.add_argument("--outfile", help = "path to outfile", default = 'outfile')
parser.add_argument("--summary", help = "true or false", action = "store_true")
parser.add_argument("--pagehits", help = "path to list of page hits", default = 'pagehits')
parser.add_argument("--exemplar_file", help = "file to inspire book")
args = parser.parse_args()
input_file = args.infile
print(args.infile)
print(var(args))
with open('modified-variables', 'w') as outfile:
    outfile.write(args.infile)
    outfile.write('hello world')

带有--infile"/path/to/file"--lang"en"的输出为:

/path/to/file
en
[but nothing written to file]

我希望它在所有位置参数上循环,并将命令行中提供的所有参数写入格式的修改变量

infile="/path/to/file"
lang="en"

谷歌搜索并不能帮助我找出如何打印argname,而且with/write结构中存在一些简单的错误。

更新:增加了每个答案#1的打印(vars((args)),产生:

{'lang': 'en', 'exemplar_file': None, 'pagehits': 'pagehits', 'summary': False, 'outfile': '/tmp/pagekicker/123/out_test', 'request_type': 'sum', 'infile': '/home/fred/pagekicker-community/scripts/seeds/revolutionary-figures'}

现在我只想写

lang="en"examplear_file="无"

等等。

到文件。

你试过吗

print(args)    # the default Namespace display format

print(vars(args))

vars(args)是一个字典,您可以用多种不同的方式显示它。您可以将其转换为元组列表(.items()),也可以迭代keys等。

相关内容

  • 没有找到相关文章

最新更新