How to replace a words near the specific word in a text file using python
这是我的示例代码,用于在文本文件的所有行中查找特定单词"dut-decoded",并用另一个文本文件(一行一行地具有新名称)逐行替换为引用。进口再新单词=
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | rep_file = open('Rename_Changes_Details.txt','r') for line in rep_file: line = line.strip() new_words.append(line) infile = open('Filter_Lines.txt','r') i = 0 out = open('ip_list.txt','w') for inlines in infile: inlines = re.sub('dut_decoded',new_words[i],inlines) out.write(inlines) i += 1 out.close() infile.close() |
但是,我需要用新名称替换所有行中"out="一词附近的单词。例如,我有一个带有这些行的文本文件
1.-低音切断=45--输出=系统ALG桨低音提取
2.-低音切断=0--输出=系统警报所有床位输入10b0ou sp10f2h.wav
3.-低音切断=8--输出=系统ALG桨低音提取
这里我需要替换一个单词(sys-alg-oar-bass-extraction-be45-sr32k0-in8b0o-sp8f0h.wav),在第一行"out="附近。就像这个过程需要在所有行中替换。新的名称是从我的代码中的"infile"开始的。这个"内鬼"在下面有这些线。
一百
一百零一
一百零三
像这样。最后我想要这些输出像这样。
1.-低音断开=45--断开=100
2.-低音断开=0--断开=101
3.-低音断开=8--断开=102
你能指导我做这个吗?
正则表达式库具有替换匹配re.sub(pattern、repl、string)部分的函数。
使用lookaheads
1 | re.sub("(?<=--out=)(.+)(?=\s)","something","--bass_cut_off=0 --out=sys_alg_oar_all_beds_IN10B0O_SP10F2H.wav" ) |
导致
1 | '--bass_cut_off=0 --out=something' |
在这个例子中,我还可以使用一个负的前瞻
1 | '--bass_cut_off=0 --out=something.wav' |
在这个例子中,等价于