在Python中匹配文本并在其上一行追加文本,可以通过以下步骤实现:
- 读取文本文件中的每一行内容,将每一行存储在列表中。
with open('file.txt', 'r') as f:
lines = f.readlines()
- 遍历列表中的每一行内容,使用正则表达式匹配需要修改的行。
import re
for i in range(len(lines)):
if re.match('需要匹配的文本', lines[i]):
# 在上一行追加文本
lines[i-1] = lines[i-1].strip() + '需要添加的文本\n'
例如,假设需要在以下文本中匹配“python”字符串,并在其上一行追加“Good job!”文本:
This is a line of text.
This line contains the word python.
This line does not contain the word python.
可以使用以下代码来实现:
import re
with open('file.txt', 'r') as f:
lines = f.readlines()
for i in range(len(lines)):
if re.match('.*python.*', lines[i]):
lines[i-1] = lines[i-1].strip() + ' Good job!\n'
with open('new_file.txt', 'w') as f:
f.writelines(lines)
结果如下:
This is a line of text.
This line contains the word python. Good job!
This line does not contain the word python.
另外,如果需要在多个文件中匹配文本并进行修改,可以使用glob模块来获取所有符合条件的文件名,然后在循环遍历时逐个修改。例如:
import glob
import re
files = glob.glob('*.txt')
for file in files:
with open(file, 'r') as f:
lines = f.readlines()
for i in range(len(lines)):
if re.match('.*python.*', lines[i]):
lines[i-1] = lines[i-1].strip() + ' Good job!\n'
with open(file, 'w') as f:
f.writelines(lines)
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python如何匹配文本并在其上一行追加文本 - Python技术站