【发布时间】:2023-12-15 10:47:01
【问题描述】:
我通常在 Perl 中这样做:
随便.pl
while(<>) {
#do whatever;
}
然后cat foo.txt | whatever.pl
现在,我想在 Python 中执行此操作。我尝试了sys.stdin,但我不知道该怎么做,就像我在 Perl 中所做的那样。如何读取输入?
【问题讨论】:
我通常在 Perl 中这样做:
随便.pl
while(<>) {
#do whatever;
}
然后cat foo.txt | whatever.pl
现在,我想在 Python 中执行此操作。我尝试了sys.stdin,但我不知道该怎么做,就像我在 Perl 中所做的那样。如何读取输入?
【问题讨论】:
我讨厌打死马,但我可以建议使用纯函数吗?
import sys
def main(stdin):
for line in stdin:
print("You said: " + line.strip())
if __name__ == "__main__":
main(sys.stdin)
这种方法很好,因为 main 完全依赖于它的输入,您可以使用任何符合行分隔输入流范例的东西对其进行单元测试。
【讨论】:
import sys
for line in sys.stdin:
# do stuff w/line
【讨论】:
类似这样的:
import sys
for line in sys.stdin:
# whatever
【讨论】:
import sys
def main():
for line in sys.stdin:
print line
if __name__=='__main__':
sys.exit(main())
【讨论】:
试试这个:
import fileinput
for line in fileinput.input():
process(line)
【讨论】: