无法使我的代码识别特定的字符串

时间:2019-08-19 01:53:06

标签: python python-3.x

我正在为一个小学校项目编码。我想读取一个.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

2 个答案:

答案 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文件具有更多的编码方式。我所做的只是将所有文本粘贴到代码内的字符串中,就可以了。