2012-03-14 81 views
4

我在想如何管理来自python脚本的另一个命令的输入。Python:使用来自其他命令的输入

例如:

$ cat myfile.txt | my_python_script.py

我的脚本如何从cat命令管理输入流?我如何从这个管道命令获得输入?

...非常感谢。

回答

4

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

import fileinput 

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

这样你既可以使用脚本在管道(如你现在需要右)或给一个或多个文件的脚本作为参数(认为my_python_script.py input.txt input2.txt)。

+0

我会记住这一点,非常感谢。 – user1174386 2012-03-15 12:01:49

1

通过sys.stdin.readlines() 读取标准输入的一个很好的选择:使用pipes模块。

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

这是一个不错的tutorial

+0

非常感谢。 Muchas gracias!我会读tuto – user1174386 2012-03-15 12:02:09

相关问题