将管道数据传递给Python程序和输入文件

将管道数据传递给Python程序和输入文件,python,file-io,Python,File Io,我希望使用管道将数据传递到Python文件,并指定输入文件,如: cat file.txt|python script.py -u configuration.txt 我目前有: for line in fileinput.input(mode='rU'): print(line) 我知道sys.argv可能有问题,但也许使用fileinput有一个干净的方法可以做到这一点 谢谢。发件人: 如果文件名是'-',它也会被sys.stdin替换。要指定文件名的替代列表,请将其作为第一个参

我希望使用管道将数据传递到Python文件,并指定输入文件,如:

cat file.txt|python script.py -u configuration.txt
我目前有:

for line in fileinput.input(mode='rU'):
    print(line)
我知道sys.argv可能有问题,但也许使用fileinput有一个干净的方法可以做到这一点

谢谢。

发件人:

如果文件名是
'-'
,它也会被
sys.stdin
替换。要指定文件名的替代列表,请将其作为第一个参数传递给
input()

因此,您可以创建一个包含
'-'
以及
sys.argv[1://code>(默认值)内容的列表,并将其传递给
input()
。或者,也可以将
-
放在Python程序的参数列表中:

cat file.txt|python script.py -u - configuration.txt

取决于您是否希望在
configuration.txt
内容之前或之后处理标准输入上提供的数据

如果您想做比将标准输入的内容当作输入文件来处理更复杂的事情,那么您可能不应该使用
fileinput
模块

cat file.txt|python script.py -u configuration.txt -