【问题标题】:Remove function and its definition from python code从 python 代码中删除函数及其定义
【发布时间】:2018-08-07 13:32:37
【问题描述】:

例如:旧文件

def MyFunction():

       some code inside MyFunction()

def MyFunction1():

       some code inside MyFunction1()

if __name__ == "__main__":

       some code inside

新文件

def MyFunction1():

       some code inside MyFunction1()

if __name__ == "__main__":

       some code inside

我想从多个文件中删除 MyFunction() 和其中的代码 MyFunction() 后面没有 MyFunction1() 。 MyFunction() 可以位于代码中的任何位置,后跟任何代码。

【问题讨论】:

  • 嗨 Sundeep 有 2 个函数 MyFunction() 和 MyFunction1() 并跟随一些缩进代码我想从我的文件中删除 MyFunction 和其中的缩进代码。并保留 Myfunction1() 和 remaning缩进代码
  • 请单击unix.stackexchange.com/posts/426865/edit 并添加这些详细信息。请参阅unix.stackexchange.com/editing-help 获取格式帮助...还可以添加您尝试过的内容..
  • def 行之后的行似乎没有缩进。你也想删除空行吗?

标签: text-processing awk sed


【解决方案1】:
awk '/^[[:alpha:]]/         { del=0 }
     /^def MyFunction\(\):/ { del=1 }
     del == 0' file.py

只要变量del 设置为零,这个awk 程序就会遍历所有内容。

如果找到MyFunction() 定义的第一行,则该变量设置为 1,然后在找到行首带有字母字符的行时将其重置为零。

这会从输入文件中删除MyFunction() 定义。

在示例数据上运行时的结果是

def MyFunction1():

       some code inside MyFunction1()

if __name__ == "__main__":

       some code inside

【讨论】:

    猜你喜欢
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多