2017-11-19 9 views
2

사용자 input() 기능을 사용하여 파이썬 3.6.x에서 전체 파일을 읽는 방법은 무엇입니까? 도전 과제와 마찬가지로 사이트가합니다. 예를 들어 :파일을 기본 사용자 입력으로 읽으려면 어떻게해야합니까?

line 1 
line 2 
line 3 
end 
  • 같은 것을 할 것입니다 내 프로그램 :

    x = input() 
    while x != 'end': 
        print("I am at", x) 
        x = input() 
    
  • 가 그럼 난 출력으로 할 것이다 :

    • 나는 다음과 같은 내용으로 파일이

      I am at line 1 
      I am at line 2 
      I am at line 3 
      

    필자는 Python 샘플 프로그램을 다른 프로그램 (파이썬 또는 OS 스크립트도 가능)으로 랩핑해야합니다. 사용자 입력으로 파일을 전달하는 첫 번째 프로그램을 호출해야합니다. 그러나 나는 그것을 어떻게 할 수 있 었는가?

  • 답변

    2

    일반적으로 이러한 도전은 표준 입력을 통해 입력을 파이프 처리하고 stdout을 통해 응답을 예상합니다.

    이렇게하려면 다음과 같이 명령 줄에서 명령을 실행하십시오.

    python program.py < input.txt 
    

    스크립트 출력을 파일로 저장하려면 파일을 하나로 리디렉션 할 수 있습니다.

    python program.py <input.txt> output.txt 
    
    +0

    고마워, @ 그림자! 나는 당신과 @wim 응답을 맞출 수 있었으면 좋겠다. 그러나 나는 그것을 할 수 없으며 그는 더 빨랐다. 하하하 ... 내 최고! –

    +1

    기술적으로 나는 기술적으로 3 분 더 빨랐다. (타임 스탬프를보기 위해 '1 시간 전'이라고 대답했다.) – Shadow

    +1

    Ops! 네 말이 맞아. 공정한 것을 지키기 위해 나는 대답을 다음과 같이 설정했다. 죄송합니다. –

    2

    이 작업에 대한 일반적인 표준 LIB 도구는 fileinput 모듈 : 쉘에서 다음

    import fileinput 
    
    for line in fileinput.input(): 
        print(f'working with line {line}') 
    

    , 다음 (그들은 모든 작업)의 한 곳 :

    $ python3 my_script.py my_file.txt 
    $ python3 my_script.py < my_file.txt 
    $ cat my_file.txt | python3 my_script.py