我的脚本当前使用sys.argv
检查提供给程序的输入文件。
我正在尝试利用argparse
相反,但我似乎无法让它发挥作用。我能够设置它并添加一个参数,但是当我解析一个参数并打印该解析的参数时,我得到一个名称空间。我怎样才能得到一个字符串?基本上,我想将参数作为字符串,并打开具有该名称的文件。
目前,我的sys.argv
is:
filename = sys.argv[1]
f = open(filename, 'r')
My 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)