기본적으로 파일에서 입력을 가져 오려고합니다. 예를 들어 는 :파일을 기본 표준 입력으로 지정
num=input()
이 문 대신 키 안타를 기다리는 파일에서 입력을해야합니다. 표준 입력을 파일로 리다이렉션하여이를 수행하고 싶지는 않습니다. 기본적으로 필요합니다. 간단히 말해 키보드는 입력 장치의 기본 장치이므로 키보드 대신 입력 파일을 제공합니다.
기본적으로 파일에서 입력을 가져 오려고합니다. 예를 들어 는 :파일을 기본 표준 입력으로 지정
num=input()
이 문 대신 키 안타를 기다리는 파일에서 입력을해야합니다. 표준 입력을 파일로 리다이렉션하여이를 수행하고 싶지는 않습니다. 기본적으로 필요합니다. 간단히 말해 키보드는 입력 장치의 기본 장치이므로 키보드 대신 입력 파일을 제공합니다.
당신은이 같은 OS 수준에서 표준 입력에 파일을 첨부 할 수 있습니다
python script.py <input.txt
을 스크립트에, 그것은 input()
이 파일에서 사용자 유형 다음 줄 호출 될 때마다처럼 보일 것입니다.
실제로 나는 자바에서 파이썬 스크립트를 실행 중입니다. 파일에서 입력을 리디렉션하지 않고 실행중인 경우 프로세스 p = Runtime.getRuntime(). exec ("python add.py"); 하지만 당신이 그 방법을 사용하지 않는 것이 좋습니다. 프로세스 p = Runtime.getRuntime(). exec ("python add.py
간단한 해결 방법.
def file_input(filename):
with open(filename, 'r') as f:
for line in f:
yield line
_input_iterator = file_input('input.txt')
def input_(): # replace input
return _input_iterator.next()
전역 변수를 클래스로 묶거나 모듈로 만들지 않도록 할 수 있습니다.
나는 이것을 좋아하지 않지만 가능합니다. 정말 표준 입력을 교체하려면 stdin
그냥 파일, UNIX 모델
import sys
sys.stdin = file('input.txt', 'r')
input_line = input()
(창에 그것을 tryied하지 않은 경우). pipe
과 같은 유틸리티를 사용할 경우 stdin
하위 프로세스를 수정/리다이렉션합니다. 프로세스의 stdin
이 상위 범위 (예 : 터미널)에서 수정되는 경우 더 편하게 느껴집니다. 그렇지 않으면 더 이상 '표준'처럼 보이지 않습니다.
당신과 (그리고 OP)가'fileinput' [documention] (https://docs.python.org/3/library/fileinput.html#module-fileinput)을 살펴 보도록 제안하십시오. – martineau
'fileinput'은 실제로 더 합리적입니다! 어쩌면 묻는 사람은 글로벌 이름'input'으로 붙어 있을지도 모릅니다. –
'입력'은 정의에 따라 표준 입력에서 읽는 것입니다. 파일을 표준 입력에 연결하지 않으려면'input'을 사용하고 싶지 않습니다. 'fileinput' 모듈을 사용해보십시오. – chepner
파일에서 읽을 때'input'을 사용할 수 없습니다. –
어떤 이유에서든'fileinput' 모듈을 사용하고 싶지 않다면'sys.stdin = open ("file")'경로를 사용하여 수동으로 다시 할당 해보십시오. 그리고 나서'input()'함수는 문자를 읽을 것입니다 그 파일에서. – martineau