如何分割一个文本,重复所有相同的模式的行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)

最新更新