표준 입력 또는 파일에서 데이터를 읽을 수있는 파이썬 스크립트가 있습니다. 이를 위해, 나는 다음과 같은 방식으로 fileinput를 사용 : 잘 작동fileinput 사용 후 raw_input 사용
for line in fileinput.input(args.path):
read.parseLine(line)
합니다. 그러나이 파일/입력을 읽은 후, 본인은 사용하여 표준 입력을 통해 몇 가지 추가 입력을 사용자에게 문의 할 수 있도록하려면 :
data = raw_input("Please enter your data for port {}: ".format(core.getPort()))
이 작동하지 않는, raw_input을이 EOF가 발생에 유지하기 때문이다.
Please enter your data for port 0: Traceback (most recent call last):
File "app_main.py", line 72, in run_toplevel
File "/usr/local/bin/dvm", line 98, in <module>
data = raw_input("Please enter your data for port {}: ".format(core.getPort()))
EOFError
나는
sys.stdin.seek(0)
를 사용하여이 문제를 해결하려하지만 다음과 같은 오류 반환 :
Traceback (most recent call last):
File "app_main.py", line 72, in run_toplevel
File "/usr/local/bin/dvm", line 88, in <module>
sys.stdin.seek(0)
IOError: [Errno 29] Illegal seek: '<fdopen>'
fileinput 함수를 사용 후 사용자의 입력을 요청하는 방법은 없나요을?
나는 그것을 실행 시간에 표준 입력의 대상을 변경하는 것은 불가능 같은데요 : 당신은 터미널을 사용할 수 있는지 감지 할
os.isatty()
function을 사용할 수 있을까? – mathsaey@mathsaey : * 대상 *은 귀하의 스크립트입니다. 소스는 변경할 수 없습니다. 그것은 파이썬이 실행되기 전에 모두 설정됩니다. –
stdin이 파이프에 바인딩되어 있다면 다른 방법으로 사용자 입력을 요청할 수 있습니까? – mathsaey