Python从命令行参数或stdin读取

Fre*_*Foo 9 python stdin input command-line-arguments

在Python中编写面向文本的命令行程序时,我经常想要读取命令行上传递的所有文件,或者(XOR)标准输入(如Unix cat,或Perl <>).所以,我说

if len(args) == 0:  # result from optparse
    input = sys.stdin
else:
    input = itertools.chain(*(open(a) for a in args))
Run Code Online (Sandbox Code Playgroud)

这是Pythonic这样做的方式,还是我错过了图书馆的某些部分?

eum*_*iro 13

你需要fileinput.

标准用例是:

import fileinput
for line in fileinput.input():
  process(line)
Run Code Online (Sandbox Code Playgroud)