Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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 Can';不要让我的代码识别特定的字符串_Python_Python 3.x - Fatal编程技术网

Python Can';不要让我的代码识别特定的字符串

Python Can';不要让我的代码识别特定的字符串,python,python-3.x,Python,Python 3.x,我正在为一个学校的小项目编码。我想读一个.txt文件,找出“pergunta[]”和一个问号之间的区别,但我的程序无法给我这个 我已经尝试过别人的建议,但它似乎对我不起作用,因为它无法检索我想要的字符串片段,而且显然甚至没有输入if语句 (“perguntas”指问题) 导入pyttsx3 speak=pyttsx3.init() 运行=真 perguntas=open(r“C:\Users\jeana\Desktop\perguntas.txt”,“r”) texto=perguntas.re

我正在为一个学校的小项目编码。我想读一个.txt文件,找出“pergunta[]”和一个问号之间的区别,但我的程序无法给我这个

我已经尝试过别人的建议,但它似乎对我不起作用,因为它无法检索我想要的字符串片段,而且显然甚至没有输入if语句

(“perguntas”指问题)

导入pyttsx3
speak=pyttsx3.init()
运行=真
perguntas=open(r“C:\Users\jeana\Desktop\perguntas.txt”,“r”)
texto=perguntas.read()
运行时:
如果文本中有“pergunta5”:
data=texto.split(“pergunta5”)[1]。split(“?”[0]
打印(数据)#尝试添加此行,但从未打印
说,说(数据)
speak.runAndWait()
运行=错误
print(“um loop”)#我添加此代码就是为了知道代码达到了这一点
运行=错误
我希望我的代码能够找到介于“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=“有很多问题的文本1 yadayadayada?问题2 dayadayadaya?”
如果文本中出现“问题1”:
数据=文本。拆分(“问题1”)[1]。拆分(“?”[0]
打印(数据)
输出应该是:

yadayadayada
使用内置的方法“with”来读取文件,正则表达式用于拆分语句“pergunta.”这里“.”表示任何内容。有关更多说明,请参阅python的正则表达式

import re
with open('perguntas.txt','r') as f:
     content = f.read()

sp = re.split('pergunta.', content)
print(sp)
使用内置的方法“with”来读取文件,正则表达式用于拆分语句“pergunta.”这里“.”表示任何内容。有关更多说明,请参阅python的正则表达式

import re
with open('perguntas.txt','r') as f:
     content = f.read()

sp = re.split('pergunta.', content)
print(sp)

原来@JohnGordon让我看到了问题所在。代码本身没有问题,但是.txt文件有更多的编码。我所做的只是简单地将所有文本粘贴到代码中的一个字符串中,效果很好。

结果@JohnGordon让我看到了问题所在。代码本身没有问题,但是.txt文件有更多的编码。我所做的只是简单地将所有文本粘贴到代码中的字符串中,效果很好。

speak
语句之前尝试
print
ing
data
来调试问题。为什么不打印“data”的值来帮助调试呢。哦,这也是@Selcuk建议的。你确定
speak.say()
可以处理重音字符吗?在读取文件、选择文本和说出文本之间,可能会出现一些不同的错误。如果你做了一个修改,这会有所帮助。如果
print()
语句从未出现,那么要么你的数据文件没有显示出来,要么是发生了其他事情。你是如何运行代码的?您是在命令行中键入
python myscript.py
,还是从IDE或其他方式运行?在
speak
语句之前尝试
print
ing
data
来调试问题。为什么不打印“data”的值以帮助调试。哦,这也是@Selcuk建议的。你确定
speak.say()
可以处理重音字符吗?在读取文件、选择文本和说出文本之间,可能会出现一些不同的错误。如果你做了一个修改,这会有所帮助。如果
print()
语句从未出现,那么要么你的数据文件没有显示出来,要么是发生了其他事情。你是如何运行代码的?您是在命令行中键入
python myscript.py
,还是从IDE或其他方式运行?这并不能解释当前代码不工作的原因,这才是真正的问题。这并不能解释当前代码不工作的原因,这才是真正的问题。