我正在为一个小学校项目编码。我想读取一个.txt文件,并找到“ pergunta []”和一个问号之间的内容,但无法使我的程序为我提供。
我已经尝试了有人建议的here,但是它似乎对我不起作用,因为它没有检索到我想要的字符串,而且甚至都没有输入if语句。
(“ perguntas”表示问题)
import pyttsx3
speak = pyttsx3.init()
running = True
perguntas = open(r"C:\Users\jeana\Desktop\perguntas.txt", "r")
texto = perguntas.read()
while running:
if "pergunta5 " in texto:
data = texto.split("pergunta5 ")[1].split("?")[0]
print(data) #tried adding this line but it is never printed
speak.say(data)
speak.runAndWait()
running = False
print("um loop") #I added this just to know the code reaches this point
running = False
我希望我的代码能够找到介于“ pergunta []”(本例中为5)和“?”之间的问题。和文本语音转换,但是由于某种原因,此代码仅输出听起来像“ p”的内容,并且没有错误消息。我想知道我是否在这里错过了一些基本的东西...
文本文件如下所示:
pergunta1 Quanto é dois mais dois? R: 4 - 2
pergunta2 Quanto é cinco menos 2? R: 3 - 2
pergunta3 Quanto é cinco menos 1? R: 4 - 2
pergunta4 A peppa pig é um? R: Porco - 3
pergunta5 Qual a cor do cavalo branco do napoleão? R: Branco - 3
编辑: 我的代码的一个简单版本是
text = "a lot of text with some question1 yadayadayada? question2 dayadayadaya?"
if "question1" in text:
data = text.split("question1")[1].split("?")[0]
print(data)
,输出应为:
yadayadayada
答案 0 :(得分:0)
使用内置的方法“ with”来读取文件,正则表达式用于拆分语句“ pergunta”。这里 ”。”意味着什么。有关Python的更多说明,请参见regex。
import re
with open('perguntas.txt','r') as f:
content = f.read()
sp = re.split('pergunta.', content)
print(sp)
答案 1 :(得分:0)
结果证明,@ JohnGordon让我知道出了什么问题。代码本身没有问题,但是.txt文件具有更多的编码方式。我所做的只是将所有文本粘贴到代码内的字符串中,就可以了。