Skip to main content
 首页 » 编程设计

Python之转到匹配上方的两行

2025年05月04日12zhenyulu

在这样的文本文件中:

名字姓氏#
第二名
地址行 1
地址行 2
工作电话:
家庭电话:
状态:

名字姓氏#
....同上...

我需要匹配字符串 'Work Phone:' 然后向上两行插入字符 '|'在行的开头。所以伪代码是:

如果“工作电话:”在行中: 上两行: 写| + 线 写下其余的行。

文件大约 10 MB,大约有 1000 个这样的段落。 然后我需要将它写入另一个文件。所以期望的结果是:

名字姓氏#
第二名
|地址行1
地址行 2
工作电话:
家庭电话:
状态:

感谢您的帮助。

请您参考如下方法:

此解决方案不会将整个文件读入内存

p="" 
q="" 
for line in open("file"): 
    line=line.rstrip() 
    if "Work Phone" in line: 
       p="|"+p 
    if p: print p 
    p,q=q,line 
print p 
print q 

输出

$ python test.py 
First Name last name # 
secone name 
|Address Line 1 
Address Line 2 
Work Phone: 
Home Phone: 
Status: