【Py】项目代码脱敏脚本

今天要上交代码进行代码审查, 对里面的敏感内容进行脱敏, 思路就是将代码中的字符串全部用星号代替, 并删除所有非代码文件
以下就是执行上述过程的脚本

import os
import re

# 获取当前目录下位于不同层级的所有.py文件
all_files = []
for root, dirs, files in os.walk('./'):
    for file in files:
        if file.endswith('.py'):
            all_files.append(f'{root}/{file}')

# 加星号
for file in all_files:
    with open(file) as f:
        contents = f.readlines()
    with open(file, 'w') as f:
        for content in contents:
            # 移除"""与'''干扰
            content = re.sub('("([^"]*)")|\'([^\']*)\'', lambda m: f"'{'*'*(len(m.group())-2)}'" if m.group() not in ['""', "''"] else m.group(), content)
            f.write(content)

# 删除所有.ipynb、.gitignore、.dockerignore、.md、.xlsx、.log文件
for root, dirs, files in os.walk('./'):
    for file in files:
        for ending in ['.ipynb', '.gitignore', '.dockerignore', '.md', '.xlsx', '.log']:
            if file.endswith(ending):
                # 删除文件
                os.remove(f'{root}/{file}')

效果:

    # 发送http请求
    @classmethod
    def send_request(cls, method: str, request_url: str, headers: dict, data: Union[dict, bytes]) -> requests.models.Response:
        """发送请求

        Args:
            method (str): 请求方式
            request_url (str): 请求地址
            headers (dict): 请求头
            data (Union[dict, bytes]): 请求体

        Raises:
            Exception: 请求错误
            exception: 通用异常

        Returns:
            requests.models.Response: 请求结果对象
        """
        count = 0
        while True:
            if count < 2:
                try:
                    if method == '***':
                        res = cls.s.get(request_url, params=data, headers=headers, verify=False, timeout=60)
                    elif method == '****':
                        if '**************' in headers.keys():
                            headers['**************'] = str(len(str(data)))
                        res = cls.s.post(request_url, json=data, headers=headers, verify=False, timeout=60)
                    elif method == '*************':
                        if '**************' in headers.keys():
                            headers['**************'] = str(len(data))
                        res = cls.s.post(request_url, data=data, headers=headers, verify=False, timeout=60)
                    time.sleep(3)
                    if res.status_code >= 400:
                        raise Exception('*****', res)
                    else:
                        return res
                except Exception as e:
                    count += 1
                    print('*****')
                    time.sleep(5)
                    exception = e
            else:
                raise exception
<think>好的,我现在需要处理用户关于“显示完整代码”的请求。首先,用户可能是在开发或调试过程中遇到了问题,想要查看某个程序或脚本的全部代码。但用户的问题描述比较模糊,没有具体说明是哪个项目或哪种编程语言,所以我需要先考虑如何应对这种情况。 接下来,我应该回想用户提供的系统级指令。用户要求所有行内数学表达式用$...$,独立公式用$$...$$,并且确保LaTeX语法正确。但当前问题涉及代码显示,可能不需要数学公式,不过仍需注意格式要求。另外,回答需要用中文,结构清晰,逐步帮助用户解决问题。 用户的问题可能是想了解如何在特定环境中显示完整代码,比如在IDE中展开折叠的代码,或者在命令行工具中查看全部内容。也有可能是他们在使用某个软件或工具时,代码被截断,需要知道如何完整显示。或者,用户可能是在问如何确保自己编写的代码在分享时保持完整,不被省略。 我需要先确认用户的具体场景,但用户没有提供更多细节,因此需要给出一个通用的解决方案。考虑到不同的可能性,我应该分步骤解释几种常见情况下的解决方法。 首先,常见的情况是在IDE或编辑器中代码被折叠。例如,Visual Studio Code、IntelliJ等都有代码折叠功能,用户可能需要展开所有折叠部分来查看完整代码。可以指导他们使用快捷键,如Ctrl+K Ctrl+0(VS Code)来展开所有区域。 其次,在命令行中查看文件内容时,使用cat、more、less等命令,如果文件很长,可能需要使用参数如cat -n file.txt显示行号,或者less -S防止换行。另外,代码打印时被截断的情况,比如在Python中使用print输出长字符串或数据结构时,可以调整输出选项,如设置pandas的显示选项或使用sys.displayhook。 另外,在网页或文本编辑器中,代码可能因窗口宽度而被换行,用户可以调整视图设置或启用横向滚动条。对于版本控制如Git,查看完整提交历史可能需要使用git log --oneline --decorate --graph --all这样的命令。 还需要考虑用户可能是在询问如何确保分享代码时完整,这时可以建议使用代码托管平台如GitHub,或代码粘贴网站,并提醒用户检查代码是否包含所有必要部分,避免敏感信息。 最后,提醒用户如果问题未解决,需要提供更多具体信息,比如编程语言、环境、现象描述等,以便进一步帮助。整个回答需要结构清晰,分点说明,确保用户能逐步排查问题。 在格式上,按照用户要求,行内代码用反引号包裹,独立代码块用三个反引号并指定语言,但用户可能有其他格式需求,但根据用户的系统指令,可能需要使用LaTeX格式,但此处代码展示应该用标准的Markdown代码块。不过用户提供的系统级指令主要针对数学公式,代码部分可能不需要转换。需要确认,但根据用户的可视层指示,应该使用常规的代码块格式,即用三个反引号包裹,并指定语言,如python、bash等,以增强可读性。 总结回答的结构应该是: 1. IDE/编辑器中的代码折叠问题 2. 命令行查看文件内容 3. 打印输出时的截断问题 4. 网页/文本编辑器的自动换行 5. 版本控制中的日志截断 6. 分享代码时的完整性 7. 其他建议和注意事项 每个部分给出解决方法,使用代码块示例,最后提醒用户提供更多信息。这样用户可以根据自己的情况选择对应的解决方案。</think>以下是一些常见场景下“显示完整代码”的解决方案,分步骤说明: --- ### 1. **IDE/编辑器中代码被折叠** 大多数编辑器支持代码块折叠(如函数、循环等)。 **解决方法**: - **展开所有折叠**: - **VS Code**:按 `Ctrl+K` → 再按 `Ctrl+0`(数字零) - **IntelliJ/PyCharm**:右键代码区域 → `Folding` → `Expand All` - **禁用自动折叠**: 在设置中搜索 `folding` → 关闭 `Auto fold` 相关选项。 --- ### 2. **命令行中查看长代码文件** 使用命令行工具查看文件时,内容可能被截断。 **解决方法**: - 使用 `cat` 命令显示全部内容: ```bash cat filename.py ``` - 使用 `less` 分页查看(支持上下滚动): ```bash less filename.py ``` - 显示行号(方便定位): ```bash cat -n filename.py ``` --- ### 3. **打印输出时内容被截断** 在 Python/Jupyter 等环境中,长输出可能自动省略。 **解决方法**: - **Python 中设置打印选项**: ```python import pandas as pd pd.set_option('display.max_columns', None) # 显示所有列 pd.set_option('display.max_rows', None) # 显示所有行 pd.set_option('display.width', 1000) # 调整输出宽度 ``` - **禁用省略号**: ```python import numpy as np np.set_printoptions(threshold=np.inf) # 显示完整数组 ``` --- ### 4. **网页/文本编辑器自动换行** 代码因窗口宽度换行,影响可读性。 **解决方法**: - **禁用自动换行**: - **VS Code**:点击状态栏右下角 `Wrap` → 切换为 `No Wrap` - **浏览器**:按 `Ctrl+Shift+I` 打开开发者工具 → 调整 `pre` 标签的 `white-space: pre` 样式。 --- ### 5. **版本控制中查看完整代码差异** 使用 `git diff` 或 `git log` 时内容被截断。 **解决方法**: - 使用分页工具: ```bash git diff | less ``` - 查看完整提交历史: ```bash git log --oneline --graph --decorate --all ``` --- ### 6. **分享代码时确保完整性** 避免因粘贴导致代码缺失。 **建议**: - 使用代码托管平台(如 GitHub/GitLab) - 使用代码粘贴网站(如 Gist, Pastebin) - 压缩为文件分享(如 `.zip` 或 `.tar.gz`) --- ### 7. **其他注意事项** - 检查代码中是否包含敏感信息(如密码、API Key) - 若问题仍未解决,请提供: - 操作系统和工具名称(如 Windows/PyCharm) - 具体现象截图或报错信息 - 相关代码片段(确保脱敏) 可根据实际场景选择对应方法!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值