将 txt 文件的行保存到 csv 中
Save lines of txt file into csv
我有一个类似这样的 txt 文件
a,b,c
0,0,0
0,0,0
*
x,y,z
1,1,1
1,1,1
*
u,v,w
9,9,9
9,9,9
*
我想将除星号外的每三行保存到 csv 文件中,这样我的 csv 文件看起来像这样。
0.csv
a,b,c
0,0,0
0,0,0
1.csv
x,y,z
1,1,1
1,1,1
2.csv
u,v,w
9,9,9
9,9,9
有什么有效的方法吗?非常感谢。
您可以使用 itertools.groupby
将文件“拆分”成单独的组:
from itertools import groupby
with open("your_file.txt", "r") as f_in:
i = 0
for is_asterisk, lines in groupby(f_in, lambda line: line.strip() == "*"):
if not is_asterisk:
print("Writing {}.csv".format(i))
with open("{}.csv".format(i), "w") as f_out:
f_out.writelines(lines)
i += 1
打印:
Writing 0.csv
Writing 1.csv
Writing 2.csv
并保存文件。
我有一个类似这样的 txt 文件
a,b,c
0,0,0
0,0,0
*
x,y,z
1,1,1
1,1,1
*
u,v,w
9,9,9
9,9,9
*
我想将除星号外的每三行保存到 csv 文件中,这样我的 csv 文件看起来像这样。
0.csv
a,b,c
0,0,0
0,0,0
1.csv
x,y,z
1,1,1
1,1,1
2.csv
u,v,w
9,9,9
9,9,9
有什么有效的方法吗?非常感谢。
您可以使用 itertools.groupby
将文件“拆分”成单独的组:
from itertools import groupby
with open("your_file.txt", "r") as f_in:
i = 0
for is_asterisk, lines in groupby(f_in, lambda line: line.strip() == "*"):
if not is_asterisk:
print("Writing {}.csv".format(i))
with open("{}.csv".format(i), "w") as f_out:
f_out.writelines(lines)
i += 1
打印:
Writing 0.csv
Writing 1.csv
Writing 2.csv
并保存文件。