使用python或C#删除csv中的行?

使用python或C#删除csv中的行?,python,csv,Python,Csv,我有一个csv文件,它会像这样重复: “col1”、“col2”、“col3” 整数,整数,Varchar(50) 7, 8, 21554 24, 25, 36544 “col1”、“col2”、“col3” 整数,整数,Varchar(50) 7, 8, 21554 24, 25, 36544 如何剥离重复的部分,包括后面的标题、数据类型行和数据行? 我只想要这个: “col1”、“col2”、“col3” 整数,整数,Varchar(50) 7, 8, 21554 24, 25, 3654

我有一个csv文件,它会像这样重复:

“col1”、“col2”、“col3”
整数,整数,Varchar(50)
7, 8, 21554
24, 25, 36544
“col1”、“col2”、“col3”
整数,整数,Varchar(50)
7, 8, 21554
24, 25, 36544
如何剥离重复的部分,包括后面的标题、数据类型行和数据行?
我只想要这个:

“col1”、“col2”、“col3”
整数,整数,Varchar(50)
7, 8, 21554
24, 25, 36544

我们甚至不需要为此使用
csv
模块。我们将记住文件的第一行是什么,然后写几行,直到我们再次看到它,在这一点上,我们将停止,截断文件

with open('infile.csv', newline='') as infile, open('outfile.csv', 'w+',  newline='')as outfile:
     first = next(infile)
     outfile.write(first)
     for line in infile:
         if line == first:
             break
         outfile.write(line)

您可以使用
csv
模块(假设Python 2.x)这样做:


谢谢你,Patrick,你的代码工作起来很有魅力,除了一个小改动:当我在Python3中运行时,在“打开”之前删除第二个“with”。不客气。建议你阅读
import csv

seen = set()
with open('duplicates.csv', 'rb') as infile, open('cleaned.csv', 'wb') as outfile:
    reader = csv.reader(infile, skipinitialspace=True)
    writer = csv.writer(outfile)
    for row in (tuple(row) for row in reader):
        if row not in seen:
            writer.writerow(row)
            seen.add(row)

print('done')