我有一个问题,我似乎无法在 python 中找到解决方案。
从命令行我可以通过以下方式做到这一点:sed '1,/COMMANDS/d'/var/tmp/newFile
这会删除从第 1 行到正则表达式“COMMANDS”的所有内容。简单
但是我不能用我能找到的 Python 做同样的事情。
re.sub 和多行似乎不起作用。
所以我有一个问题,我怎样才能以 Pythonic 的方式做到这一点?除非必须,否则我真的宁愿不从 python 中运行 sed。
我会使用 fileinput使用 inplace=True
实际更改原始文件,在找到匹配项时设置一个标志并删除行,直到您执行以下操作:
import fileinput
import re
found = False
for line in fileinput.input("your_file",inplace=True):
if re.match("pattern",line):
found = True
if found:
print(line,end="") # print line, python2
else:
print(end="") # print, python2
如果模式没有什么太复杂的,if "pattern"in line
也可能有效。
我是一名优秀的程序员,十分优秀!