【发布时间】:2014-02-15 22:25:54
【问题描述】:
是否有一种单线方法可以在 linux bash 中运行以下 python 脚本,而不保存任何临时文件(/dev/std* 除外)? 我的 python 脚本 test.py 将文件名作为参数,但也将 sys.stdin 作为流输入。
#test.py
#!/usr/bin/python
import sys
fn=sys.argv[1]
checkofflist=[]
with open(fn,'r') as f:
for line in f.readlines():
checkofflist.append(line)
for line in sys.stdin:
if line in checkofflist:
# do something to line
我想做类似的事情
hadoop fs -cat inputfile.txt > /dev/stdout | cat streamingfile.txt | python test.py /dev/stdin
但这当然不起作用,因为中间的猫破坏了预期的 /dev/stdin 内容。能够做到这一点很好,因为我不需要每次需要使用 hdfs 文件时都在本地保存它们。
【问题讨论】: