栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用python将文本文件拆分为多个文本文件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用python将文本文件拆分为多个文本文件?

尝试re.findall()函数:

import rewith open('input.txt', 'r') as f:    data = f.read()found = re.findall(r'n*(A.*?n$$)n*', data, re.M | re.S)[open(str(i)+'.txt', 'w').write(found[i-1]) for i in range(1, len(found)+1)]

前3次出现的 简约方法:

import refound = re.findall(r'n*(A.*?n$$)n*', open('input.txt', 'r').read(), re.M | re.S)[open(str(found.index(f)+1)+'.txt', 'w').write(f) for f in found[:3]]

一些解释:

found = re.findall(r'n*(A.*?n$$)n*', data, re.M | re.S)

将查找与指定RegEx匹配的所有匹配项,并将它们放入 列表中 ,称为

found

[open(str(found.index(f)+1)+'.txt', 'w').write(f) for f in found]

遍历(属于列表)所有元素(使用列表推导),

found
并为每个元素创建文本文件(称为“
index of the element +1
.txt”),并将该元素(出现)写入该文件。

没有RegEx的另一个版本:

blocks_to_read = 3blk_begin = 'A'blk_end = '$$'with open('35916503.txt', 'r') as f:    fn = 1    data = []    write_block = False    for line in f:        if fn > blocks_to_read: break         line = line.strip()        if line == blk_begin: write_block = True        if write_block: data.append(line)        if line == blk_end: write_block = False with open(str(fn) + '.txt', 'w') as fout:     fout.write('n'.join(data))     data = [] fn += 1

PS我个人不喜欢这个版本,我会使用RegEx



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611937.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号