我的脚本当前使用 sys.argv
检查提供给程序的输入文件。
我正在尝试使用 argparse
,但我似乎无法让它工作。我能够设置它并添加一个参数,但是当我解析一个参数并打印该解析的参数时,我得到了一个命名空间。我怎样才能得到一个字符串?基本上,我想将参数作为字符串,并打开一个具有该名称的文件。
目前,我的 sys.argv
是:
filename = sys.argv[1]
f = open(filename, 'r')
我的 argparse
打印出一个 Namespace
如下:
arg = parser.parse_args()
print arg
如何使用它打开文件?我想使用 argparse
因为参数的错误处理要容易得多。
最佳答案
认为使用 with
语句打开文件更可取(或类似!),如下所示:
# printfile.py
import argparse
parser = argparse.ArgumentParser(description="Opens a file and does cool stuff ^^")
parser.add_argument('filename', type=str, help="Path to file to open")
args = parser.parse_args()
with open(args.filename) as f:
print ' my uber cool file:'
print f.readlines()
指定那些关键字参数也有助于制作漂亮的 -h 帮助文本选项(非常整洁)
[dlam@dlam-63221:~] $ python printfile.py -h
usage: printfile.py [-h] filename
Opens a file and does cool stuff ^^
positional arguments:
filename Path to file to open
关于python - 使用 'argparse' 而不是 sys.argv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310631/