我正在读取文件

with open('file.html', 'r') as lines:
    for _ in range(19):
        line = lines.readline()
    line = line.replace('textA', '')
    line = line.replace('textB', '')
    line = line.replace('textC', '')
    line = line.replace('textD', '')


我总共有8行替换。我想有一个更Python的方式来做到这一点。

有一个聪明的方法来做到这一点。也许以某种方式使用filtermap

最佳答案

您可以使用regular expression

import re
from itertools import islice

pattern = re.compile(r'textA|textB|textC|textD')

with open('file.html', 'r') as lines:
    for line in islice(lines, 18, 19):
        line = pattern.sub('', line)


我故意保留pattern的位置;大概您真正的替代品并非全部以text开头;否则,您可以使用r'text[A-D]'作为模式。

我用itertools.islice()跳过了前18行,只处理了第19行。

关于python - 属性上的Python映射函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28176176/

10-12 15:02
查看更多