我有代码,可以设置运行和记录科学实验的环境。一些初始设置涉及使用内置的input()方法来查询用户的值。每当我尝试调用输入时,我就会在关闭文件错误时继续进行I / O操作。 代码流:Control.py调用Analyzer.py,它调用Prompts.py中的特定方法(代码见下文)。
def prompt_instruments(message):
res = input(message) # query user with arg message
print("done")
if '.' in res:
print("User input not cool. Use comma-separated values.")
return None # to continue prompting
...
我在互联网上搜索过,无法找到任何与之相关的内容。非常感谢你!!
答案 0 :(得分:1)
您发布的代码似乎没问题,错误可能在您的其他文件中。
input()
功能使用sys.stdout
显示提示文字,使用sys.stdin
获取用户的输入文字。
您收到的错误消息可能是由其中一个文件被关闭引起的,例如:
>>> import sys
>>> input('test: ')
test: hello
'hello'
>>> sys.stdin.close()
>>> input('test: ')
test: Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file.
或:
>>> import sys
>>> input('test: ')
test: hi
'hi'
>>> sys.stdout.close()
>>> input('test: ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file.
我无法确切地告诉您解决此问题的确切位置,但要查找可能直接或间接关闭其中一个文件的内容(例如上下文管理器)。