在天池資料競賽中需要對其提供的資料進行處理。
現在有這樣一些資料,例如
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...