2017-01-10 58 views
0

欲使用管的数据传递给一个Python文件,并且还指定等的输入的文件:传递管道数据到Python程序,并且还输入文件

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

我目前有这样的:

for line in fileinput.input(mode='rU'): 
    print(line) 

我知道有可以用sys.argv的东西,但也许使用fileinput有一个干净的方式来做到这一点?

感谢。

回答

1

the documentation

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

所以,你可以创建一个包含'-'列表以及sys.argv[1:](默认值)的内容,并将其传递到input()。或者,或者只是把-在你的Python程序的参数列表:

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

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

取决于你是否要在标准输入提供的数据之前或configuration.txt内容后进行处理。

如果您想做任何比标准输入内容更加复杂的操作,就好像它是一个输入文件一样,您可能不应该使用fileinput模块。

+0

谢谢!从那里我可以继续工作! – mclzc