Python逐⾏读取txt⽂本,按符合分割词并逐⾏写⼊txt
背景Background:
我的txt⽂件⾥⾯存放的是搜索词,由于原始的query(搜索词)都是⽤/或者、来分割词,⽽我要达到的是每个词语是单独的⼀⾏,并且写⼊txt
第⼀步:按⾏读取txt⽂件
s = []
f = open('','r') #由于我使⽤的pycharm已经设置完了路径,因此我直接写了⽂件名
for lines in f:
# query_list.place('/','').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('','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 = []
python怎么读取txtf = open('','r') #由于我使⽤的pycharm已经设置完了路径,因此我直接写了⽂件名
for lines in f:
# query_list.place('/','').replace('、','').replace(' ','').strip('\n'))
ls = lines.strip('\n').replace(' ','').replace('、','/').replace('?','').split('/')
for q in ls:
if q == '':
s.append(ls) #这⼀步和上⼀步不同,是为了每⼀⾏的检索词单独成为⼀个列表中的⼩列表,后⾯才能实现对应到⾃⼰的资源号f.close()
# print(s)
# print(len(s)) #要保证两个列表的长度相等,这⾥都是51个
if len(s) == len(q_id):
print('长度相等')
#step3:对应ID和检索词,把这个结果写⼊空的txt:
dy = open('','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⾥,使⽤分割功能分割⼀下就好啦~~~~~~开熏
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论