需要一个程序对输入文件中的句子进行排序。这些句子可能包含单词"ERROR"、"INFORMATION",或者两者都不包含。带有"ERROR"的句子会被记录到错误日志中。带有"INFORMATION"的句子会被记录在信息日志中。包含这两者的句子不会被处理。不应更改原始输入文件。输入文件名为"Lorem_Ipsum.txt"。该信息日志名为"Info.log",并且已经存在,其中包含一个标题。错误日志名为"error .log",不存在。该解决方案不需要内部数据结构。在编写所需程序的代码之前,对现有文件进行备份。注意:在这个例子中,没有办法知道最后一条记录是什么时候被写入文件的,所以不用担心输出文件末尾会有额外的一行。
这是我在计算机科学课上被要求做的问题。
#global variables
FILENAME = "Lorem_Ipsum (2).txt"
newFile = []
INFO = "INFORMATION"
ERROR = "ERROR"
info_log = []
error_log = []
#subprograms
def loadData():
theFile = open(FILENAME, "r")
for line in theFile:
line = line.strip()
theFields = line.split(".")
aRecord = []
aRecord.append(theFields[0])
aRecord.append(theFields[1])
newFile.append(aRecord)
theFile.close()#up to here is correct. everything else is idk
def check(word, pList):
if word in pList:
print("The word is in the list!")
else:
print("The word is not in the list!")
#def writeData():
#theFile.open(FILENAME, "w")
#index = 0
#newRecord = []
#while index < len(newFile):
#newRecord = newFile[index]
#outLine = newRecord
#main program
loadData()
for theFields in newFile:
print(theFields)
check(INFO, theFields)
它打印出不在列表中的每个句子,即使有些句子的目标单词在列表中。如有任何帮助,我将不胜感激。
作为参考,我正在学习edexcel gcse计算机科学课程。
编辑-以下是Lorem_Ipsum (2).txt文件的前几行:
Lorem INFORMATION ipsum dolor sit amet, consecentier adipingelite。Maecenas portportator conconerror mass。熔断器姿势,误差大,颈部疼痛,男性肌肉松弛。
如你所见,有些有INFORMATION,有些有ERROR,有些两者都没有,我需要把它们分开。
让我们从修复loadData()函数开始:
def loadData():
sentences = []
theFile = open(FILENAME, "r")
for line in theFile:
line = line.strip()
theFields = line.split(".")
sentences += theFields
theFile.close()
return sentences
现在来看看check()函数:
def check(word, pList):
for sentence in pList:
if word in sentence:
print("The word is in the sentence!")
else:
print("The word is not in the sentence!")
这两个修复应该足以帮助你修复你的代码。我明天再来看看你是否需要更多的帮助。