Python批量将pyc反编译为py文件的脚本实现

Theo
Theo
发布时间:2026-10-15 | 3人浏览过
原创

本文介绍如何利用uncompyle6工具在Python中批量将pyc文件反编译为py源码。通过自定义脚本遍历目录,过滤特定模块并执行转换命令,实现自动化处理。

pyc文件解析

pyc是Python解释器编译py源文件后生成的二进制字节码文件。其加载速度通常优于直接读取py文件,且作为跨平台字节码,由Python虚拟机执行,机制类似于Java或.NET的虚拟机。

借助uncompyle6工具可将pyc还原为py源码。通过调用系统命令行接口,可编写脚本实现批量转换,具体实现代码如下:

import os
import sys
def walk_dir(dir,topdown=True):
    words=[]
    words=['asyncio.','attr.','bs4.','chardet.','Crypto.','chardet.','concurrent.','ctypes.','dateutil.','distutils.','email.','et_xmlfile.','fiona.','geographiclib.','geojson.','geopandas.','geopy.','html.','http.','importlib.','jinja2.','multiprocessing.','numpy.','openpyxl.','pandas.','pkg_resources.','pyecharts.','pyproj.','pytz.','requests.','setuptools.','shapely.','simplejson.','soupsieve.','sqlalchemy.','unittest.','urllib3.','xlsxwriter.','xml.','xlrd.']
    for root, dirs, files in os.walk(dir, topdown):
        for name in files:
            if name.endswith('.pyc'):
                part_name = name[0:-4]
                part_file_name = os.path.join(root, part_name).replace("\\","/")
 
                isconvert=True
                for w in words:
                    if (name.startswith(w)):
                        isconvert=False
                        break
                if isconvert:
                    os.system('uncompyle6 -o "%s.py" "%s.pyc"'%(part_file_name,part_file_name))
                    print(part_file_name)
walk_dir(os.getcwd())

至此,关于Python中批量将pyc反编译为py文件的实现方案介绍完毕。如需了解更多相关技术细节,可查阅本站历史文章或继续阅读后续内容,感谢支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表