Python批量将pyc反编译为py文件的脚本实现
本文介绍如何利用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文件的实现方案介绍完毕。如需了解更多相关技术细节,可查阅本站历史文章或继续阅读后续内容,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









