gpt4 book ai didi

Python 删除文本行 #1 直到正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:50 25 4
gpt4 key购买 nike

我有一个问题,我似乎无法在 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 也可能有效。

关于Python 删除文本行 #1 直到正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com