用python拆分带有条件运算符的文本文件

用python拆分带有条件运算符的文本文件,python,text,Python,Text,我有一个很大的文件,包括连续两天的过长的转录演讲。我猜超过10万字 在转录过程中,我用“”标记将演讲者和会话分为不同的块。我的问题是,是否有可能自动将它们处理成名为_speach.txt的命名约定中的文件 谢谢 测试用例: 测试用例 <--测试0--> 这个是一段测试内容,a quick fox jumps over a lazy dog. <——测试1——> ,a quick fox just over 啊 辣子 dog!!?是吗? <——测试2——>

我有一个很大的文件,包括连续两天的过长的转录演讲。我猜超过10万字

在转录过程中,我用“”标记将演讲者和会话分为不同的块。我的问题是,是否有可能自动将它们处理成名为_speach.txt的命名约定中的文件

谢谢

测试用例:

测试用例

<--测试0-->
这个是一段测试内容,a quick fox jumps over a lazy dog.

<——测试1——>
,a quick fox just over 啊 辣子 dog!!?是吗?

<——测试2——>
这是一段测试用的text,嗯!

<--Test case 3-->
/* sound track lost @153:12.236 -- 153.18.222 */
…
A quick fox jumps over a {lazy|lame} dog.

这个是一段测试内容,一只敏捷的狐狸跳过一只懒惰的狗。
,一只敏捷的狐狸啊 辣子 狗是吗?
这是一段测试用的文本嗯!
/*音轨丢失@153:12.236--153.18.222*/
…
一只敏捷的狐狸跳过一只{懒|跛}狗。

所以你想搜索文本文件中的每个模式“”(我认为100000个单词对于计算机内存来说不是很大)

可以对搜索标记使用正则表达式

在Python中,它类似于:

import re

NAMETAG = r'\<\-\- (?P<name>.*?) \-\-\>'

# find all nametags in your string
matches = re.findall(NAMETAG, yourtext)

offset_start_list = []
offset_end_list = []
name_list = []

for m in matches:
    name = m.groups()['name']
    name_list.append(name)

    # find content offset after name tag
    offset_start_list.append(m.end() + 1)

    # the last content's end
    offset_end_list.append(m.start())


offset_end_list.pop(0)
offset_end_list.append(len(yourtext))

for name, start, end in zip(name_list, offset_start_list, offset_end_list):
    # save your files here
重新导入
NAMETAG=r'\'
#查找字符串中的所有名称标记
matches=re.findall(NAMETAG,yourtext)
偏移量\u开始\u列表=[]
偏移量\结束\列表=[]
name_list=[]
对于匹配中的m:
name=m.groups()['name']
名称\u列表。附加(名称)
#查找名称标记后的内容偏移量
偏移量开始列表追加(m.end()+1)
#最后的内容结束了
offset\u end\u list.append(m.start())
偏移量\结束\列表。弹出(0)
offset\u end\u list.append(len(yourtext))
对于名称、开始、结束(名称列表、偏移量开始列表、偏移量结束列表):
#在这里保存您的文件

所以你想搜索文本文件中的每个模式“”(我认为100000个单词对于计算机内存来说不是很大)

可以对搜索标记使用正则表达式

在Python中,它类似于:

import re

NAMETAG = r'\<\-\- (?P<name>.*?) \-\-\>'

# find all nametags in your string
matches = re.findall(NAMETAG, yourtext)

offset_start_list = []
offset_end_list = []
name_list = []

for m in matches:
    name = m.groups()['name']
    name_list.append(name)

    # find content offset after name tag
    offset_start_list.append(m.end() + 1)

    # the last content's end
    offset_end_list.append(m.start())


offset_end_list.pop(0)
offset_end_list.append(len(yourtext))

for name, start, end in zip(name_list, offset_start_list, offset_end_list):
    # save your files here
重新导入
NAMETAG=r'\'
#查找字符串中的所有名称标记
matches=re.findall(NAMETAG,yourtext)
偏移量\u开始\u列表=[]
偏移量\结束\列表=[]
name_list=[]
对于匹配中的m:
name=m.groups()['name']
名称\u列表。附加(名称)
#查找名称标记后的内容偏移量
偏移量开始列表追加(m.end()+1)
#最后的内容结束了
offset\u end\u list.append(m.start())
偏移量\结束\列表。弹出(0)
offset\u end\u list.append(len(yourtext))
对于名称、开始、结束(名称列表、偏移量开始列表、偏移量结束列表):
#在这里保存您的文件

取决于数据的格式。。。到目前为止,您尝试了什么?@JonClements each“”在一个单独的行中,整个文档中没有任何其他内容以“您能展示一些示例文本吗?”开头。@enginefree当然。像这样:\n快速狐狸跳跃哦他是个懒惰的人斗哥!\n\n什么?/*它有一些CJK字符和分号。您有示例文本,因此请在您的问题描述中粘贴一些。这取决于您的数据格式如何…您迄今为止尝试了什么?@JonClements each“”在一个单独的行中,整个文档中没有其他以开头的内容您能展示一些示例文本吗?@enginefree确定。像这样:\n狐狸跳得很快哦他是个懒惰的人斗哥!\n\n什么?/*它有一些CJK字符和分号。您有示例文本,所以请在您的问题描述中粘贴一些。