Python从命令行参数或stdin读取

时间:2011-04-15 11:22:39

标签: python input stdin command-line-arguments

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

<>

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

3 个答案:

答案 0 :(得分:13)

您需要fileinput

标准用例是:

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

答案 1 :(得分:2)

答案 2 :(得分:1)

在Python 3中,argparse handles filetype objects非常好。它是一个功能非常强大的模块,文档附带了许多示例,因此您可以轻松快速编写所需的代码。 (Pythonic怎么样!)

您可能还会受益于this StackOverflow关于使用argparse可选择从stdin读取的问题。