使用Fileinput模块和正则表达式替换的Python脚本包含\n(多行)

2024-06-13 13:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

所有人

我对Python还比较陌生,但是已经在REGEX中广泛地使用了其他脚本语言。我需要一个脚本,将打开一个文件,寻找一个正则表达式模式,替换模式和关闭文件。我发现下面的脚本很好用,但是,我不知道“for line”是否在文件输入.input命令可以适应超过单行的正则表达式模式(即正则表达式包含回车符)。在我的例子中,它包括两行。我的测试文件已读取_信息技术.txt看起来像这样

阅读_信息技术.txt(仅包含3行) 阿坝 疾病预防控制中心 EFE公司

此脚本用于打开文件,识别超过2行的模式ABA\nCDC,然后将其替换为单词TEST。在

如果pattern replace成功,那么文件应该如下所示,现在只包含2行: 试验 EFE公司

了解这个问题的答案对于使用Python脚本解析文本文件并动态修改它们有很大帮助。我相信,但不确定是否有更好的Python结构仍然允许REGEX搜索。所以问题是:

1)我是否需要更改现有脚本中的某些内容来更改“for line”命令的行为以匹配多行REGEX模式? 2) 或者我需要一个更适合多行搜索的不同Python脚本吗?在

一些可能有帮助但我目前不知道如何写的东西是:

1)fileinput“readline”选项。 2) 加法(?)?m) 在multline的表达式中

请帮忙!在

布伦特

脚本

import sys
import fileinput
import re
for line in fileinput.input('C:\\Python34\\read_it.txt', inplace=1):
    line = re.sub(r'A(B)A$\nCDC', r'TEST', line.rstrip())
    print(line)

Tags: 文件import命令txt脚本forinputline