2017-08-02 106 views
-1

我有有許多行的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,​​但它並沒有「科技工作 –

回答

0
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冰,它在兩行之間增加一個空行。 –

相關問題