Regex Python中用迭代词切分字符串

Regex Python中用迭代词切分字符串,regex,string,python-3.x,cut,Regex,String,Python 3.x,Cut,对于Python3中的一个项目,我正在尝试将一个长的.txt文件切成几段,并将其存储到一个列表中。该方案的目的是分析各种语言要素的句子 目前,我陷入了以下困境:所有文本示例都以“text[0-9]*”开头,然后是文本本身。我已将整个文件读入内存,现在我想将每个部分都提交到字典中。我目前有: import re filename = input("Please input filename: ") if len(filename) < 1: filename = "sample.txt"

对于Python3中的一个项目,我正在尝试将一个长的.txt文件切成几段,并将其存储到一个列表中。该方案的目的是分析各种语言要素的句子

目前,我陷入了以下困境:所有文本示例都以“text[0-9]*”开头,然后是文本本身。我已将整个文件读入内存,现在我想将每个部分都提交到字典中。我目前有:

import re

filename = input("Please input filename: ")
if len(filename) < 1: filename = "sample.txt"

try:
    fhandle = open(filename, "r", encoding ='ISO-8859-1')
    print ("file opened:", filename)
except:
    print ("file cannot be opened:", filename)
    quit()

data = ""
length = 0
for line in fhandle:
    if re.match("Text [0-9]", line):
        line = "\n"+line
    else:
        line = line.strip()

text = re.findall("(Text [0-9](\S|\s)*)\nText [0-9]", data)
for items in texts:
    print (items)
重新导入
文件名=输入(“请输入文件名:”)
如果len(filename)<1:filename=“sample.txt”
尝试:
fhandle=open(文件名为“r”,编码为class='ISO-8859-1')
打印(“文件已打开:”,文件名)
除:
打印(“无法打开文件:”,文件名)
退出
data=“”
长度=0
对于fhandle中的行:
如果重新匹配(“文本[0-9]”,第行):
line=“\n”+行
其他:
line=line.strip()
text=re.findall(“(text[0-9](\S |\S)*)\nText[0-9]”,数据)
对于文本中的项目:
打印(项目)

问题是我一直得到一个长度为1的列表,而不是52个项目(52个文本)。我的正则表达式/findall技术有什么问题?稍后,我将需要做同样的事情来切句。

您没有在
数据中存储行列表。
尝试
数据=[]
,然后
数据。在循环中追加(行)
,然后
数据=“\n”。加入(数据)