首页 > 编程语言 >写一个Python脚本删除一个.py文件的所有注释

写一个Python脚本删除一个.py文件的所有注释

时间:2024-11-16 11:07:28浏览次数:1  
标签:content key Python py 注释 protected file line strings

Any improvement would be appreciated.

import re


def remove_comments(file_path):
    with open(file_path, 'r') as file:
        content = file.read()

    # First, find and store string assignments
    protected_strings = {}
    counter = 0

    def protect_string_assignments(match):
        nonlocal counter
        var_name, string_content = match.groups()
        key = f'PROTECTED_STRING_{counter}'
        protected_strings[key] = match.group(0)
        counter += 1
        return key

    # Protect strings that are part of assignments
    protected_content = re.sub(
        r'([a-zA-Z_][a-zA-Z0-9_]*\s*=\s*)("""[\s\S]*?"""|\'\'\'[\s\S]*?\'\'\')',
        protect_string_assignments,
        content
    )

    # Remove docstring comments (triple-quoted strings not part of assignments)
    cleaned_content = re.sub(
        r'"""[\s\S]*?"""|\'\'\'[\s\S]*?\'\'\'',
        '',
        protected_content
    )

    # Remove single-line comments and empty lines
    lines = []
    for line in cleaned_content.split('\n'):
        # Remove inline comments
        line = re.sub(r'#.*$', '', line)
        if line.strip():
            lines.append(line)

    # Restore protected strings
    final_content = '\n'.join(lines)
    for key, value in protected_strings.items():
        final_content = final_content.replace(key, value)

    # Write back to file
    with open(file_path, 'w') as file:
        file.write(final_content)

# Example usage:
remove_comments('your_script.py')

标签:content,key,Python,py,注释,protected,file,line,strings
From: https://www.cnblogs.com/yhm138/p/18549168

相关文章

  • Python 开发(13):文件与目录操作的实用技巧
    Python开发(13):文件与目录操作的实用技巧文件和目录操作是每个开发者在日常工作中不可或缺的部分。Python提供了丰富的文件和目录操作功能,如读取、写入文件、遍历目录、文件权限管理等。这些功能不仅适用于小型脚本项目,在数据处理、自动化任务和服务器开发中也十分常用。......
  • Python 中 if __name__ == ‘__main__‘ 的解释
    1.基本概念   在Python中,`if__name__=="__main__"`是一种常见的代码结构。`__name__`是一个内置变量,它的值取决于模块是如何被使用的。   当一个Python脚本被直接运行时,`__name__`的值被设置为`"__main__"`。而当一个模块被另一个模块导入时,`__name__`的值就是该......
  • 跟着走,Python从入门到精通,一个月就够!
    毫无疑问,Python是当下最火的编程语言之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握Python看似是一件十分困难的事。其实,只要掌握了科学的学习方法并制定了合理的学习计划,Python从入门到精通只需要一个月就够了!如果每天坚持用6-7小时来做一件事,你会......
  • 基于线性回归的粮食产量预测(Python代码)
    一、引言预测粮食产量在农业规划、食品安全和全球经济稳定等多个方面都具有极其重要的意义,其应用场景也十分广泛。以下是对预测粮食产量的重要性和应用场景的详细介绍:1.1预测粮食产量的重要性(1)农业规划与决策支持:粮食产量预测为政府和相关机构提供了农业规划的基础数据。......
  • 网络爬虫 Python 第二课
    BeautifulSoup高级用法:标签查找与筛选:除了简单地通过标签名查找(如 soup.find('div') 查找第一个 div 标签),还可以利用属性来更精准地查找。例如,如果要查找所有 class 属性为 article 的 div 标签,可以使用 soup.find_all('div',class_='article') 。这里注意 cl......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要随着计算机科学技术日渐成熟,人们已经深刻认识到了计算机功能的强大,计算机已经进入到了人类社会发展的各个领域,并且发挥着十分重要的作用。通过管理系统在电脑上的应用,人们能更好的管理信息,储存数据。为了能够提供游戏商城的方便性,开发了基于vue的游戏网站。此游戏网站......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,招聘网站当然也不能排除在外。招聘网站是以实际运用为开发背景,运用软件工程开发方法,采用互联网技术构建的一个管理系统。整个开发过程首先对软件系统进行需......
  • 计算机毕业设计项目推荐,SSM山西能源学院教室管理系统81671(开题答辩+程序定制+全套文案
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,山西能源学院教室管理系统当然也不能排除在外。山西能源学院教室管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用 SSM技术构建的一个管理系......
  • (免费源码)计算机毕业设计必看必学 原创程序 java、PHP、python、文案全套、毕设成品等
    摘要由于数据库和数据仓库技术的快速发展,停车场管理系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。停车场管理系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的要求发生重大的变化。停车场管理系统除了具有共享系统的全部功能以外,能......
  • Python 网络爬虫入门教程
    引言网络爬虫(WebCrawler)是一种通过编程从互联网上抓取数据的技术,常用于数据分析、信息采集等任务。Python作为一门功能强大且易于使用的编程语言,拥有丰富的爬虫库和工具,如Requests、BeautifulSoup和Scrapy,使得网络爬虫的开发变得更加高效便捷。本文将以一个简单的实例,介......