python - 如何拆分重复所有相同模式行n次的文本并在python中创建n个不同的文本文件?
问题描述
我有一个重复相同线条图案的文本。像那样:
"User= Name1;
Time= HH:MM;
Note= example.
User= Name2;
Time= HH:MM;
Note= example2.
......"
这种模式重复 500 次。
如何为每个“用户”创建 500 个不同的文本文件?
解决方案
看起来每个段有 7 行长,因此您可以将数据读入一个列表,使用 zip 和 iter 将其分解为一个列表列表,每个列表有 7 个元素长。然后,您可以将其中的每一个写入文件。
如果您对 zip(iter) 的工作原理感到好奇,请查看此处的详细信息
with open('users.txt') as f:
data = f.readlines()
for c, file in enumerate(zip(*[iter(data)]*7)):
with open(f'file_{c}.txt', 'w') as f:
f.writelines(file)
或者,如果您想要用户的文件名
with open('users.txt') as f:
data = f.readlines()
for file in zip(*[iter(data)]*7):
name = file[0].split('=')[-1].split(';')[0].strip()
print(name)
with open(f'file_{name}.txt', 'w') as f:
f.writelines(file)
推荐阅读
- python - 如何使用 pygraphviz 增加点图中节点之间的间距?
- regex - 这个正则表达式模式的目的是什么?
- swiftui - SwiftUI 使用表单选择器复制导航栏
- swiftui - 结构之间的@binding问题
- docker - 如何将设备绑定/映射到 Rancher?
- android - 如何使用导航 UI 组件从片段设置工具栏标题
- javascript - Echarts:如何在cartesian2d热图中逐行做一个连续的visualmap范围?
- firebase - 组合futurebuilder和streambuilder时,Flutter中的Listview builder滚动不流畅
- java - 使用 WebSocket Angular 应用程序监听 REST 端点
- python - 我的弹丸停止射击问题如何解决?