背景Background:
我的txt文件里面存放的是搜索詞,由於原始的query(搜索詞)都是用/或者、來分割詞,而我要達到的是每個詞語是單獨的一行,並且寫入txt
第一步:按行讀取txt文件
s = [] f = open('querylist.txt','r') #由於我使用的pycharm已經設置完了路徑,因此我直接寫了文件名 for lines in f: # query_list.append(line.replace('/','').replace('、','').replace(' ','').strip('\n')) ls = lines.strip('\n').replace(' ','').replace('、','/').replace('?','').split('/') for i in ls: s.append(i) f.close() print(s)
第二步:逐行寫入txt
把我們列表中s的每一個元素寫入tet,一個元素為一行,方法有很多,我這里只列舉一種
(提前在你的文件路徑中建立好一個空的txt:query_result)
f1 = open('query_result.txt','w') for j in s: f1.write(j+'\n') f1.close()
大功告成,最后我輸出的結果是:
其他:分類匯總的反向操作
完整版:為每一個資源號ID下的query配置對應資源號
我現在有兩個變量:資源ID 和對應的檢索詞,每個ID對應多個檢索詞,每個ID和對應的檢索詞成為一行,具體結構如下:
我希望能夠實現:1)把每行的多個檢索詞分開成一個個的單詞,每個單詞占一行
2)每個檢索詞前面對應各自的ID
為了做這個,我做了一個實驗:
# # d = {'37186':'高能少年團,高能王俊凱','37192':'世界杯'} # cc = [['高能少年團','高能王俊凱'],['shijiebei','世界杯c羅']] # nn = ['37186','37192'] # for i in range(0,2): # for j in cc[i]: # print(j+nn[i])
#step1:讀取資源號ID q_id = [] f2 = open('id.txt','r') for lines in f2: q_id.append(lines.strip('\n')) f2.close() # print(q_id) # print(len(q_id)) #step2:讀取檢索詞(參照上兩步) s = [] f = open('querylist.txt','r') #由於我使用的pycharm已經設置完了路徑,因此我直接寫了文件名 for lines in f: # query_list.append(line.replace('/','').replace('、','').replace(' ','').strip('\n')) ls = lines.strip('\n').replace(' ','').replace('、','/').replace('?','').split('/') for q in ls: if q == '': ls.remove('') s.append(ls) #這一步和上一步不同,是為了每一行的檢索詞單獨成為一個列表中的小列表,后面才能實現對應到自己的資源號 f.close() # print(s) # print(len(s)) #要保證兩個列表的長度相等,這里都是51個 if len(s) == len(q_id): print('長度相等') #step3:對應ID和檢索詞,把這個結果寫入空的txt: dy = open('duiying.txt','w') for i in range(0,52): for j in s[i]: print(q_id[i]+j) dy.write(q_id[i]+j+'\n') dy.close()
大功告成:結果如圖所示:
之后copy到excel里,使用分割功能分割一下就好啦~~~~~~開熏