Python从命令行参数或标准输入读取
在用Python写文本相关的命令行程序时,我经常想要读取命令行中传入的所有文件,或者(或者说是二者选一)读取标准输入(就像Unix的cat
命令,或者Perl的<>
)。所以,我这样做:
if len(args) == 0: # result from optparse
input = sys.stdin
else:
input = itertools.chain(*(open(a) for a in args))
这样做算不算是Python的标准做法,还是我漏掉了库里的某些部分呢?
2 个回答
2
在Python 3中,argparse
模块可以很好地处理文件类型对象。这个模块非常强大,文档里有很多示例,所以你可以很快写出想要的代码。(真是太符合Python的风格了!)
你还可以看看这个StackOverflow上的问题,了解如何使用argparse
来选择性地从标准输入读取数据。
15