在我的模拟过程中,Python 创建了名为__pycache__
. 不止一个,而是很多。- 文件__pycache__
夹几乎总是在执行的模块旁边创建。
但是这些模块分散在我的目录中。主文件夹被调用LPG
并有很多子文件夹,这些子文件夹又包含更多的子文件夹。- 文件__pycache__
夹可以出现在所有可能的位置。
在我的模拟结束时,我想清理并删除名为所有文件夹__pycache__
的内LPG
-树。
做这个的最好方式是什么?
目前,我在模拟结束时(也在模拟开始时)调用下面的函数。但是,这有点烦人,因为我必须特别写下__pycache__
可能出现 -folder 的每个路径。
def clearCache():
"""
Removes generic `__pycache__` .
The `__pycache__` files are automatically created by python during the simulation.
This function removes the generic files on simulation start and simulation end.
"""
try:
shutil.rmtree(Path(f"{PATH_to_folder_X}/__pycache__"))
except:
pass
try:
shutil.rmtree(Path(f"{PATH_to_folder_Y}/__pycache__"))
except:
pass
Run Code Online (Sandbox Code Playgroud)
这里有一个框架挑战:如果您不想要字节码缓存,最好的解决方案是首先不生成它们。如果你每次运行后总是删除它们,它们比没用更糟糕。任何一个:
python
/ (影响单次启动),或...python3
-B
PYTHONDONTWRITEBYTECODE
环境变量以影响所有 Python 启动,直到它被取消设置,例如在bash
,export PYTHONDONTWRITEBYTECODE=1
这确实需要在 Python 脚本启动之前进行设置,因此也许可以用一个简单的bash
脚本或类似的脚本来包装您的脚本,以通过适当的开关/环境设置调用真正的 Python 脚本。
这将递归删除当前目录中的所有 *.pyc 文件和pycache目录:
import os
os.popen('find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf')
Run Code Online (Sandbox Code Playgroud)
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3220 次 |
最近记录: |