我通常在 Perl 中这样做:
随便什么.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)
这种方法很好,因为 main 完全依赖于它的输入,您可以使用任何符合行分隔输入流范例的东西对其进行单元测试。