我正在阅读文件
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行替换。我希望有更多的pythonic方法来做到这一点。
有没有聪明的方法来做到这一点。也许以某种方式使用filter
和map
?
答案 0 :(得分:4)
您可以使用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行。
答案 1 :(得分:1)
在您的示例中,我同意regexps,但可以更简单地完成:
deletions = ['textA', 'textB', 'textC', 'textD']
for s in deletions:
line = line.replace(s, '')