【发布时间】:2019-06-21 06:57:21
【问题描述】:
我有一个目录,其中包含大约 30 个具有类似模式的 Python 文件,如下所示:
import stuff
class BarFoo001(BarFooBase):
info = self.info
description = 'here's the stuff I want'
IS_CRITICAL = true
def method(sdf):
etc...
我想从每个文件中只提取带有类名和描述的行(只是作为参考的文本,我不需要工作的 Python 文件)。
我的第一个想法是用 shell 工具来做这件事。我用cat *.py > all.py,然后尝试sed -i -e 's/BarFooBase\(.*\)IS_CRITICAL/\1/' all.py,但这似乎没有效果。我也尝试在我的 IDE 中使用 RegEx,最后在 Python (re.sub('IS_CRITICAL[^>]+\nclass Bar', '', my_string)) 中使用,但这些都没有给我想要的结果。我的正则表达式有什么问题?另外,有没有我想念的更简单的方法来做到这一点?
这将是一个足够好的输出:
类 BarFoo001(BarFooBase):
信息 = self.info
description = '这是我想要的东西'
IS_CRITICAL
【问题讨论】: