gpt4 book ai didi

python - 像字符串拆分操作一样根据行将文本文件分成 block ?

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:15 25 4
gpt4 key购买 nike

我有文本报告文件,我需要像字符串拆分成数组一样“split()”。

所以文件是这样的:

BOBO:123412341234123412341234123412341234123412341123412341234BOBO:12349087609812340-984369087123450987545BOBO:324987142359087132480987235

我想根据以“^BOBO:”开头的行的拆分创建 3 个子文件。我真的不想要 3 个物理文件,我更喜欢 3 个不同的文件指针。

最佳答案

也许使用itertools.groupby :

import itertools

def bobo(x):
if x.startswith('BOBO:'):
bobo.count+=1
return bobo.count
bobo.count=0

with open('a') as f:
for key,grp in itertools.groupby(f,bobo):
print(key,list(grp))

产量:

(1, ['BOBO:12341234123412341234\n', '1234123412341234123412341\n', '123412341234\n'])
(2, ['BOBO:12349087609812340-98\n', '43690871234509875\n', '45\n', '\n'])
(3, ['BOBO:32498714235908713248\n', '0987235\n'])

既然你说你不想要物理文件,那么整个文件必须能够放入内存中。在这种情况下,要创建类文件对象,请使用 cStringIO 模块:

import cStringIO
with open('a') as f:
file_handles=[]
for key,grp in itertools.groupby(f,bobo):
file_handles.append(cStringIO.StringIO(''.join(grp)))

file_handles 将是一个类文件对象列表,每个“BOBO:”节一个。

关于python - 像字符串拆分操作一样根据行将文本文件分成 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3639647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com