天天看點

python逐行讀取txt寫入新的txt_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()

大功告成,最後我輸出的結果是:

python逐行讀取txt寫入新的txt_Python逐行讀取txt文本,按符合分割詞并逐行寫入txt...

其他:分類彙總的反向操作

完整版:為每一個資源号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()

大功告成:結果如圖所示:

python逐行讀取txt寫入新的txt_Python逐行讀取txt文本,按符合分割詞并逐行寫入txt...

之後copy到excel裡,使用分割功能分割一下就好啦~~~~~~開熏