Python:使用来自另一个命令的输入

时间:2012-03-14 19:05:06

标签: python input command pipe cat

我想知道如何从python脚本管理来自另一个命令的输入。

示例:

$ cat myfile.txt | my_python_script.py

我的脚本如何管理来自cat命令的输入流?如何从此管道命令获取输入?

...非常感谢。

2 个答案:

答案 0 :(得分:4)

一种简单而通用的方法是使用fileinput模块。

import fileinput

for line in fileinput.input()
    # do things with line

这样你就可以在管道中使用脚本(正如你现在所需)或者将一个或多个文件作为参数提供给脚本(想想my_python_script.py input.txt input2.txt)。

答案 1 :(得分:1)

通过sys.stdin.readlines() 阅读标准输入的一个很好的替代方法:使用pipes模块。

  

管道模块定义了一个类来抽象管道的概念 - 从一个文件到另一个文件的转换器序列。因为模块使用/ bin / sh命令行,所以需要用于os.system()和os.popen()的POSIX或兼容shell。

这是一个不错的tutorial