python os.walk 清理pyc文件

本文介绍了一个Python脚本,该脚本用于从指定目录及其子目录中收集所有的 .pyc 编译文件,并将它们统一移动到单独的 PYC 目录下。此操作有助于减少项目目录的杂乱并节省存储空间。

#!/user/bin/python
#!conding=utf8

import os
import shutil

g = os.walk("H:\github_hyhlinux\Exteranl_My_Libraries")
dst = "H:\github_hyhlinux\PYC"
# dirpath, dirnames, filenames


def main():
    for path, d, filelist in g:
        # print ('path:',path, 'd',d, 'filelist',filelist)
        for filename in filelist:
            if filename.endswith('.pyc'):
                file_path = os.path.join(path, filename)
                print('file_path:', file_path)
                shutil.move(file_path, os.path.join(dst, filename))

if __name__ == '__main__':
    if not os.path.exists(dst):
        os.mkdir(dst)
    main()

1.清理效果, 所有的pyc到放到PYC目录.

093833_vD7T_2300652.png

 

2.External_My_Libraries 目录中所有子目录的pyc已经被清理,大小减了一半.

093937_OYt0_2300652.png

 

 

 

 

 

转载于:https://my.oschina.net/tplinuxhyh/blog/796522

补充信息:我的setup脚本如下:import os from pathlib import Path from Cython.Build import cythonize from setuptools import setup # 配置:指定要编译的根目录和相对包名 current_folder = Path(__file__).parent.absolute() root_dir = current_folder / "src" / "isc_agent_kit" # 目录示例:D:\agent_frame_work\iscp-algorithm-foundation-ai\src\isc_agent_kit if not os.path.exists(root_dir): raise Exception("当前脚本必须放置在 src 同级目录 !!!") package_name = "isc_agent_kit" # 对应的 Python 包路径 def get_extensions(root_dir, package_name): extensions = [] for root, _, files in os.walk(root_dir): for file in files: if file.endswith(".py"): # 跳过 __init__.py 可选 # if file == "__init__.py": # continue file_path = os.path.join(root, file) rel_path = os.path.relpath(file_path, root_dir) # 正确处理:先 splitext 拿到无扩展名的路径,再替换 / module_name = os.path.splitext(rel_path)[0].replace(os.sep, ".") full_module_name = f"{package_name}.{module_name}" extensions.append( Extension( name=full_module_name, sources=[file_path], ) ) return extensions extensions = get_extensions(root_dir, package_name) setup( ext_modules=cythonize( extensions, compiler_directives={ 'language_level': 3, 'embedsignature': True, 'binding': True, }, ), options={'build_ext': {'inplace': True}}, ) 补充信息:我的打包目录存在多个层级,但是每个层级都有__init__.py,但是有的包在lib目录下面,有的包在binary_skeletons 下面,所有的包都可以正常运行。只是导入的时候,不在binary_skeletons 下面的包,pycharm报错提醒
11-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值