1
後我有一個Python腳本,可以閱讀從標準輸入或從文件中的數據。爲了做到這一點,我在下面的方式使用fileinput:的raw_input使用使用的FileInput
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後,要求用戶輸入?
我猜它是不可能在執行時更改標準輸入的目的地是哪裏? – mathsaey
@mathsaey:*目標*是你的腳本。你不能改變來源,不。這一切都是在Python運行之前設置的。 –
好吧,如果stdin綁定到管道,是否有可能以其他方式請求用戶輸入? – mathsaey