如何根据使用python重复删除csv文件中的特定行?
问题描述:
我有有许多行的CSV文件看起来像下面。如何根据使用python重复删除csv文件中的特定行?
20170718 014418.475476 [UE:142 CRNTI : 446]
20170718 094937.865362 [UE:142 CRNTI : 546]
以上是csv文件的示例两行。
现在,如果我们看到行有一个叫字符串[UE:142 ...]其重复csv文件。
问题陈述:
我想删除重复的行包含字符串[UE:<>不止一次在上述行该csv文件即字符串[UE:142重复两次,从而第二个必须被删除,这样就有很多随机字符串,如[UE:142。
任何人都可以请帮我python脚本针对上述问题陈述?
import csv
reader = open("test.csv", "r")
lines = reader.read().split(" ")
reader.close()
writer = open("test_1.csv", "w")
for line in set(lines):
writer.write(line)
writer.close()
答
from csv import reader, writer as csv_writer
csv_path = '<your csv file path here>'
def remove_duplicate_ue (csv_path):
found = False
with open (csv_path, 'r') as csv_file:
for line in reader (csv_file, delimiter = ' '):
if 'UE:' not in line [-1]:
yield line
elif not found:
yield line
found = True
def write_csv (csv_path, rows, delimiter = ' '):
with open (csv_path, 'w') as csv_file:
writer = csv_writer (csv_file, delimiter = delimiter)
for row in rows:
writer.writerow (row)
write_csv (csv_path, tuple (remove_duplicate_ue (csv_path)))
+0
我已经运行的代码,但它不会删除重复的UE,即UE:142这是目前TW冰,它在两行之间增加一个空行。 –
添加您的代码/企图 – sera
导入CSV 读卡器=打开( “test.csv”, “R”) 线= reader.read()分裂(”“) 读者.close() writer = open(“test_1.csv”,“w”) for line in set(lines): writer.write(line) writer.close() –
我已经使用了set,但它并没有“科技工作 –