Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 我想从.txt文件中读取多行_Python_File_Fwrite_Fread - Fatal编程技术网

Python 我想从.txt文件中读取多行

Python 我想从.txt文件中读取多行,python,file,fwrite,fread,Python,File,Fwrite,Fread,我想从.txt文件中读取多行。 每行代表一个将由NLTK Python脚本回答的问题,然后答案将写入另一个.txt文件中。 我成功地使这个机制起作用,但只针对question.txt文件中的一行一个问题,即从中获取问题的文件 正如我看到的场景,我想从Question.txt文件中读取一行,然后脚本将回答并将答案写入answer.txt文件。然后从Question.txt文件中读取第二行,依此类推 myFile=openQuestions.txt,“r” user_response=strmyFi

我想从.txt文件中读取多行。 每行代表一个将由NLTK Python脚本回答的问题,然后答案将写入另一个.txt文件中。 我成功地使这个机制起作用,但只针对question.txt文件中的一行一个问题,即从中获取问题的文件

正如我看到的场景,我想从Question.txt文件中读取一行,然后脚本将回答并将答案写入answer.txt文件。然后从Question.txt文件中读取第二行,依此类推

myFile=openQuestions.txt,“r” user_response=strmyFile.splitlines将txt文件的内容从列表格式转换为字符串格式,以便以后能够降低字符数 我还进行了这个小实现,以使代码不会无限运行,从而计算行数: numOfLines=lenuser\u response.splitlines numofLines-=1 Python 3 你必须做的是:

读所有的行 计算所有答案 将所有答案写回文件 我假设您回答问题的方法称为回答问题:


在python中,文件是迭代器,因此为了避免存储在内存中的大数组,您的简单解决方案是:

使用openQuestions.txt作为q\u f,openAnswers.txt“w”作为a\u f: 关于q_f中的问题: 答案=解决问题 a\u f.writeanswer+\n
在这里,您逐行迭代文件,回答问题并将其保存到另一个文件中,而不在内存中保存大列表

我确实尝试过这种方法,但现在它根本不返回任何内容。关于splitlines方法,我也有一些问题,因为它不适用于列表类型的变量,只适用于字符串。所以我试图将从文件中读取的数据转换成字符串,但仍然无法从文本文件中读取多行。我必须说,我正在读取文件,我将问题存储在一个变量中。将问题存储在一个数组中,并将它们逐个传递给将返回响应的函数,这是一种更好的方法吗?如果是,那么我该怎么做?@MicreaSabau请在您的问题中提供您的代码,以便我可以查看。在我的代码中,questions_file.read返回一个字符串,因此分割线除外。您是否可以使用readlines方法代替read?因为readlines返回一个列表。@Mirchesabau如果您的问题已经在列表中,只需使用for in循环,就像我的代码中的位置2一样。这是否回答了您的问题?
# 1
with open("Questions.txt") as questions_file:
    questions = questions_file.read().splitlines()

# 2
answers = []
for question in questions:
    answer = answer_question(question)  # or use question.lower() if you want to 
    answers.append(answer)

# 3
with open("Answers.txt", mode="w") as answers_file:
    answers_file.write("\n".join(answers))