Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输入文件_Python - Fatal编程技术网

Python 输入文件

Python 输入文件,python,Python,请求用户根据他们的姓名、感受以及当天想做的事情输入信息 一旦代码运行,它将请求这些输入,用户当然必须在Python IDLE中输入输入 我希望用户回答文本文件中的问题,而不是将输入输入输入Python IDLE。我该怎么做 questions = open ("questions.txt","a+") quest1 = input("Hi what is your name?: ") quest2 = input("How are you today?: ") quest3 = input("

请求用户根据他们的姓名、感受以及当天想做的事情输入信息

一旦代码运行,它将请求这些输入,用户当然必须在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()

您可以使用从文本文件读取的内容设置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()
的调用可以从文本文件中的流中读取。提示仍将在标准输出上显示(无效),并且您将无法在程序的任何稍后点读取标准输入

更好的解决方案是重写程序以查看sys.args,并查看是否在命令行上传递了文件名。如果是这样,则调用返回从文件读取的数据的子例程。如果没有,则调用使用
input()
以交互方式提示用户的子例程


另一个选项是,您的程序首先向用户询问答案文件名,如果用户没有提供答案(即只需点击回车键),您可以交互询问。

欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。在这里申请。StackOverflow不是一种设计、编码、研究或教程服务。您似乎在问如何让用户使用文本编辑器而不是Python界面。对吗?如果是这样,那么问题就超出了我们的控制范围,您的python标记不适用。不,我希望用户在文本文件中回答问题,而不是在python中回答@请澄清:用户如何在不使用文本编辑器的情况下“在文本文件中回答问题”?请显示步骤的顺序--一个用于用户体验的脚本。用户不“用Python回答”;他/她为正在运行的Python程序提供输入,但不是用Python语言编写的。也许你和我在翻译方面有问题?或者我不明白你的问题,你也不明白我的答案,当然向你道歉@修剪