Python 删除*.pyc continuation
作为后续行动,我有一个新问题:Python 删除*.pyc continuation,python,operating-system,sys,Python,Operating System,Sys,作为后续行动,我有一个新问题: 在os.remove(module\u name)和del sys.modules[“module\u name”]中内部发生的情况?简单的回答是os.remove(module\u name)将从文件系统中删除一个文件del sys.modules[“module_name”]将从当前Python解释器正在维护的先前加载的模块的缓存中删除一个模块 在Python中,当您导入模块时,解释器会检查是否存在与您尝试导入的.py文件同名的.py文件。如果存在,并且自导入
在
os.remove(module\u name)
和del sys.modules[“module\u name”]
中内部发生的情况?简单的回答是os.remove(module\u name)
将从文件系统中删除一个文件del sys.modules[“module_name”]
将从当前Python解释器正在维护的先前加载的模块的缓存中删除一个模块
在Python中,当您导入模块时,解释器会检查是否存在与您尝试导入的.py
文件同名的.py
文件。如果存在,并且自导入.pyc
文件以来,.py
文件没有更改,则Python将加载.pyc
文件(速度明显更快)
如果.pyc
文件不存在,或者.py
文件在创建.pyc
文件后已更改,则加载.py
文件并创建新的.pyc
文件。(值得注意的是,简单地运行Python文件,比如test.py
不会导致创建test.pyc
。只有import
ing模块才会导致这种情况发生。)
sys.modules
完全是另一回事。为了加速两次导入同一模块的代码,Python维护了在当前解释器会话期间导入的模块列表。如果要导入的模块位于sys.modules
中,则将读取缓存版本(磁盘上的.py
或.pyc
文件都不会被检查)。Python提供了一个内置函数,允许您绕过模块缓存并强制从磁盘重新加载
要获得有关Python模块系统的更多信息,请参阅上的文档。my oneliner for the job:
find . -name *.pyc |xargs rm
注意:你需要Linux(或类似Unix的操作系统)我启动了很多这样的应用程序
import os
os.system('attrib +H *.pyc /S')
在windows上,当应用程序启动时,这会隐藏任何可见的编译文件-它们会给我提示。否。编辑您的原始帖子或将其改写为实际问题您应该告诉我您真正想要做什么?通常不需要删除.pyc文件,那么为什么要这样做?-1:没有这个用例。在任何可以想象的情况下都没关系亲爱的上帝。。你真是个天才!我从他们在我的项目结构中造成的混乱中得到了Hibigebies!