解决从网页复制代码带有多余行号问题

本文介绍了一种使用Python编写的脚本,用于自动从带有行号和前缀空格的网页代码中去除这些标记,使复制到txt文件中的代码更整洁。脚本可以处理标准Java代码,并提供示例展示了其在实际操作中的效果。
摘要由CSDN通过智能技术生成

我们在 Web 上找到一份很好的教程时,往往喜欢复制或者保存他人提供的代码。但是,有些网页带有自动编号功能,这会使得复制的文本处理起来比较麻烦。

例如下面的这段网页代码:

网页嵌入代码样例

 我们观察到每一行左侧都有行号的编号,我们在复制到 txt 中时候,会出现多余行号和前缀空格。

标题

我们不需要这样,但是手动去除会很麻烦且容易出错。

那我们该怎么办呢?

这时候,我想到了写一个脚本去自动化处理。下面是自动化处理的 python 代码:

def remove_line_numbers_and_prefix_spaces_from_java_file(filename):
    try:
        with open(filename, 'r') as file:
            lines = file.readlines()  # 读取文件中的所有行
    except FileNotFoundError:
        print(f"Error: File '{filename}' not found.")
        return None

    cleaned_lines = []

    for line in lines:
        # 如果行只包含数字和空格,则直接跳过
        if line.strip().isdigit() or line.strip() == "":
            cleaned_lines.append('\n')
            continue
        
        # 去除行号和前缀空格,保留正确的缩进
        cleaned_line = line.lstrip(' ').split(' ', 1)[-1]  # 去除行首空格并从第一个空格开始切割

        cleaned_lines.append(cleaned_line)

    cleaned_code = ''.join(cleaned_lines)  # 将处理后的行重新组合成代码
    return cleaned_code

# 用户输入要处理的文件名和新文件名
filename = input("Enter the filename to process: ")
output_filename = input("Enter the output filename to write cleaned code: ")

cleaned_code = remove_line_numbers_and_prefix_spaces_from_java_file(filename)
if cleaned_code:
    print("Cleaned code:")
    print(cleaned_code)
    # 将处理后的代码写入新文件
    try:
        with open(output_filename, 'w') as output_file:
            output_file.write(cleaned_code)
        print(f"Cleaned code written to '{output_filename}'.")
    except IOError:
        print(f"Error writing to file '{output_filename}'.")

运行这个脚本并输入要处理的文件以及输出文件路径。你将得到一份干净的代码。

目前此程序适用于处理标准的 Java 代码,是否有特殊情况导致出错的我暂时还没遇到。

程序执行效果

 我们看一下生成的效果,非常棒,我也很喜欢。

清洁后的代码文件

本文发布于:2024.03.23.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涟幽516

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值