문제

나는 보통 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이 순전히 입력에 의존하고 라인에 따라 입력 된 입력 스트림 패러다임을 준수하는 모든 것을 사용하여 테스트 할 수 있기 때문에 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top