python接口自动化踩坑日志(__pycache__)

关于__pycache__

有时候经常在运行程序的时候,发现项目里面凭空多出了__pycache__文件夹,对于使用并不会有什么影响,但是上传git或者视觉上来说,不够好看。所以决定删除这个__pycache__文件夹。

__pycache__文件夹干什么用的

去网上查了查,原来__pycache__相当于一个缓存,大概解释是:

当第一次运行 python 脚本时,解释器会将 *.py 脚本进行编译并保存到 pycache 目录 。
下次执行脚本时,若解释器发现你的 *.py 脚本没有变更,便会跳过编译一步,直接运行保存在 pycache 目录下的 *.pyc文件

怎么删除__pycache__文件夹

看了一些老哥的方法,自己也试了试。虽然不是很懂,但是copy代码就几秒的事情
目前所查到的有这几种方法:

  • 运行代码的时候加上参数 -B
python -B run.py
  • 配置系统环境
    PYTHONDONTWRITEBYTECODE=1
  • 写一个方法递归删除
import os
def clear(filepath):
    files = os.listdir(filepath)
    for fd in files:
        cur_path = os.path.join(filepath, fd)            
        if os.path.isdir(cur_path):
            if fd == "__pycache__":
                print("rm %s -rf" % cur_path)
                os.system("rm %s -rf" % cur_path)
            else:
                clear(cur_path)

if __name__ == "__main__":
    clear("./")

大概意思就是:遍历根目录下所有文件,若有__pycache__文件,则进行删除。

尝试后结果
  • 利用-B参数固然没问题,也很有效,但是每次运行都加上参数,个人感觉有点鸡肋,何况目前技术这么发达
  • 系统环境变量不知道如何配置,加个name和value没生效过
  • 递归删除遇见几个问题
  1. os.system其实是执行cmd命令,但是Windows10好像并不支持rm -rf。然后去查了查,说导入npm包的rimraf方法等价于rm -rf。试了之后还是运行不起来,报错不支持这个方法。
  2. 使用cmd命令del,将rm -rf改为cmd,运行报错系统权限不允许

PermissionError: [WinError 5] 拒绝访问。

最终方案

通过上述尝试,查证都不适合本人远景,本想通过代码程序来进行删除文件,无赖一上午没有解决掉,所以决定通过bat批量处理命令来删除文件,放入项目里面,这样执行起来方便(其实是我太菜,大佬们的资料太简洁深奥了,看不懂)

  • bat代码如下:
@echo off
echo 正在清除python缓存文件(__pycache__),请稍等......
pushd "C:\Users\admin\Desktop\gameCenter\APITEST"
for /f "delims=" %%a in ('dir /ad /b /s *__pycache__*')  do rd /s /q "%%~a"
echo 清除缓存完成!
echo. & pause

代码比较简单,也不是很懂,反正是可以一键删除根目录下带有__pycache__关键字的文件夹

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值