Python逐行讀取txt文本,按符合分割詞並逐行寫入txt




背景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里,使用分割功能分割一下就好啦~~~~~~開熏


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM