将 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

并保存文件。