题
我通常这样做在Perl:
whatever.pl
while(<>) {
#do whatever;
}
然后cat foo.txt | whatever.pl
现在,我想这样做在Python。我试图sys.stdin
,但我不知道该怎么办,因为我在Perl已经完成。我怎样才能读取输入?
解决方案
尝试这种情况:
import fileinput
for line in fileinput.input():
process(line)
其他提示
import sys
def main():
for line in sys.stdin:
print line
if __name__=='__main__':
sys.exit(main())
像这样:
import sys
for line in sys.stdin:
# whatever
import sys
for line in sys.stdin:
# do stuff w/line
我讨厌击败死马,但我可能会建议使用纯函数?
import sys
def main(stdin):
for line in stdin:
print("You said: " + line.strip())
if __name__ == "__main__":
main(sys.stdin)
此方法是很好的,因为主要是纯粹依赖于它的输入,并可以与单元任何服从线分隔的输入流的范例测试它。
不隶属于 StackOverflow