문제
나는 보통 perl에서 이것을한다 :
무엇이든 .pl
while(<>) {
#do whatever;
}
그 다음에 cat foo.txt | whatever.pl
이제 파이썬으로 이것을하고 싶습니다. 나는 시도했다 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이 순전히 입력에 의존하고 라인에 따라 입력 된 입력 스트림 패러다임을 준수하는 모든 것을 사용하여 테스트 할 수 있기 때문에 좋습니다.
제휴하지 않습니다 StackOverflow