2012-03-14 2 views
4

python 스크립트에서 다른 명령의 입력을 어떻게 관리 할 수 ​​있는지 궁금합니다.Python : 다른 명령의 입력 사용

예 :

$ cat myfile.txt | my_python_script.py

스크립트가 cat 명령의 입력 스트림을 어떻게 관리 할 수 ​​있습니까? 어떻게이 파이프 된 명령에서 입력을 얻을 수 있습니까?

... 고마워.

답변

4

이 작업을 수행하는 쉽고 매우 다양한 방법은 fileinput 모듈을 사용하는 것입니다.

import fileinput 

for line in fileinput.input() 
    # do things with line 

또는 매개 변수 (my_python_script.py input.txt input2.txt 생각)로 스크립트에 하나 개 이상의 파일을 제공 (당신이 지금 당장 필요로) 당신은 모두가 파이프 라인에서 스크립트를 사용할 수있는이 방법.

+0

나는 이것을 염두에 두겠다. 고마워. – user1174386

1

sys.stdin.readlines() 을 통해 표준 입력을 읽는 대신 좋은 방법은 pipes 모듈을 사용하는 것입니다.

파이프 모듈은 파이프 라인 개념을 추상화하는 클래스를 정의합니다. 파일은 한 파일에서 다른 파일로 일련의 변환기입니다. 모듈이/bin/sh 명령 행을 사용하기 때문에 os.system() 및 os.popen()에 대한 POSIX 또는 호환 쉘이 필요합니다.

여기는 멋진 tutorial입니다.

+0

고마워요. Muchas gracias! 나는 tuto을 읽을 것이다. – user1174386

관련 문제