要求用户根据他们的姓名,他们的感受以及他们当天想做什么来输入。
一旦代码运行,它会询问这些输入,用户当然必须在Python IDLE中输入输入。
我希望用户不要将输入输入Python IDLE,而是希望用户回答文本文件中的问题。我该怎么办?
questions = open ("questions.txt","a+")
quest1 = input("Hi what is your name?: ")
quest2 = input("How are you today?: ")
quest3 = input("What would you like to do?: ")
allQuests = quest1+","+quest2+","+quest3
questions.write(str(allQuests+("\n"))
questions.close()
答案 0 :(得分:0)
您可以使用从文本文件中读取的内容设置io.StringIO(或2.7 StringIO)对象
import io
answer_file = 'file name of the answer file'
f = open(answer_file)
myStringIOvar = io.StringIO(f.read())
f.close()
然后设置
sys.stdin = myStringIOvar
以便您对input()
的调用从来自文本文件的流中读取。提示仍会在stdout上显示(无用),您将无法在程序的任何后续点读取标准输入。
更好的解决方案是重写程序以查看sys.args并查看是否在命令行上传递了文件名。如果是这样,则调用一个返回从文件读取的数据的子例程。如果没有调用使用input()
以交互方式提示用户的子例程。
另一种选择是让你的程序首先向用户询问答案文件名,如果他们没有提供答案(即只是点击返回),你会以交互方式询问。