python處理txt去掉同類的冗餘資料

2021-07-05 21:10:08 字數 1418 閱讀 4762

在天池資料競賽中需要對其提供的資料進行處理。

現在有這樣一些資料,例如

1 78687679,7879877;79879

2 98797;7980787,87987907;

3 9809789,987987,8798789;89798798,9878907;

4 987686;9870987987;8790787

空格前面是資料的id號後面分號之間的資料屬於同乙個類目,分號之間有多個資料,這些資料可以相互替換,他們之間用逗號隔開。現在每個類目只想要乙個資料,多餘的為冗餘資料,需要去掉。**如下。

import os

#刪除多餘的類目的函式

defdeleteextra

(d):

#新建乙個鍊錶

newitem =

#判斷鍊錶的每個值是否含有逗號,中文逗號

for segment in d:

#如果沒有逗號直接新增到新鍊錶中,沒有再根據逗號分隔開並將

#分開的第乙個鍊錶值新增到新煉表裡

if','

notin segment:

else:

dsegment = segment.split(',')

#if '\n' not in newitem:

print (newitem)

#將新鍊錶用分號連線起來

newline =';'.join(newitem)

#判斷新組成的資料中是否有換行符

if newline.find('\n')>0:

fw.write(newline)

else:

newline = newline+'\n'

fw.write(newline)

return

'ok'

fr = open('d:/tianchi/data/dim_fashion_matchsets.txt','r')

fw = open('d:/tianchi/test8.txt','w')

r=fr.readline()

while r!='':

#該句話裡面沒有逗號直接寫到檔案裡面

if','

notin r:

fw.write(r)

else :

#有逗號的話,把分號之間的分開

d = r.split(';')

deleteextra(d)

r = fr.readline()

fr.close()

fw.close()

結果為:

1 78687679;79879

2 98797;7980787

3 9809789,987987;89798798

4 987686;9870987987;8790787

python去掉txt檔案行尾換行

誤區 例項 對於原始檔案 使用以下語句只是對讀出的內容刪除了行尾的換行符,而不是真正將修改的結果寫入到原始的檔案中。filename text.txt with open filename,r as f print open ok for line in f.readlines for a in l...

python 處理文字( txt檔案)

參考 if pos 1 content content pos content add content pos 參考 findall 注意 返回的是匹配的字串,若沒有匹配,返回,而不是什麼也不返回 參考 keys a b c values 1,2,3 dictionary dict zip keys...

利用python處理txt檔案

前段時間做公司乙個自動翻譯專案需要處理大量的文案字段,手工去做簡直不大可能 懶 因此借用python指令碼自動化處理掉了,在此記錄一下。import linecache def outputfile i,j,n zh file zh.read decode utf 8 encode gbk igno...