如何根据使用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() 
+0

添加您的代码/企图 – sera

+0

导入CSV 读卡器=打开( “test.csv”, “R”) 线= reader.read()分裂(”“) 读者.close() writer = open(“test_1.csv”,“w”) for line in set(lines): writer.write(line) writer.close() –

+0

我已经使用了set,​​但它并没有“科技工作 –

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冰,它在两行之间增加一个空行。 –