Python从命令行参数或stdin中读取



在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的方式吗,还是我错过了库的某些部分?

你需要fileinput

标准用例是:

import fileinput
for line in fileinput.input():
  process(line)

在Python 3中,argparse可以很好地处理文件类型对象。它是一个非常强大的模块,文档中有很多例子,所以很容易快速编写你想要的代码。(神谕的!)

您也可以从这个关于使用argparse选择性地从stdin读取的StackOverflow问题中受益。

相关内容

  • 没有找到相关文章

最新更新