You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除Python文件中含缩进的注释行与print语句行?

解决方法

以下代码可以处理带缩进的注释行和print语句行,核心是用正则匹配行开头的任意空白字符:

import re

def filter_lines(input_file, output_file):
    # 定义匹配规则:注释行(任意缩进后接#)、print行(任意缩进后接print关键字)
    comment_pattern = re.compile(r'^\s*#')
    print_pattern = re.compile(r'^\s*print\b')
    
    with open(input_file, 'r', encoding='utf-8') as f_in, open(output_file, 'w', encoding='utf-8') as f_out:
        for line in f_in:
            # 跳过匹配到的注释行和print行
            if comment_pattern.match(line) or print_pattern.match(line):
                continue
            # 保留其他行
            f_out.write(line)

# 使用示例
filter_lines('input.py', 'output.py')

关键点说明

  • ^\s*:匹配行开头的任意数量空白字符(包括空格、制表符,不管缩进层级)
  • #:结合前面的空白匹配规则,覆盖所有带缩进的整行注释
  • print\b:\b是单词边界,确保匹配的是print关键字,避免误删包含print字符串的变量或其他代码(比如myprint_var = 1不会被误过滤)
  • re.match():仅匹配行开头的内容,不会删除行中间出现#或print的有效代码行(比如x = 1 # 行尾注释会被保留)

测试示例

假设输入文件内容:

def func():
    # 这是带缩进的注释
    print("hello world")
    x = 5
    print(x)
    y = 10 # 行尾注释,不会被删除

处理后输出文件内容:

def func():
    x = 5
    y = 10 # 行尾注释,不会被删除

内容的提问来源于stack exchange,提问作者user19912573

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:05:28