Python之pyc文件的生成与反编译

news2025/1/8 11:52:07

目录

1、什么是pyc文件

2、手动生成pyc文件

3、pyc文件的执行

4、pyc文件的反编译


1、什么是pyc文件

pyc文件(PyCodeObject)是Python编译后的结果。当python程序运行时,编译的结果是保存于PyCodeObject,程序运行结束后,Python就将PyCodeObject写入到pyc文件中,这是个字节码文件。

2、手动生成pyc文件

首先我们新建一个py文件,如下图:

正常运行test.py没有任何变化

那么我们在终端使用python命令追加参数 -m 进行运行呢?

python -m test.py

可以看到生成了一个 __pycache__ 文件夹,进入该文件夹即可看到一个pyc文件

内容如下:

看起来就是一堆乱码,这种主要是不想让别人看到源码的情况

�

    �i\e   �                   �   �  e d �  �         dS )z
Hello Python!N)�print� �    �D:\test\test\test.py�<module>r      s   �� ��o� � � � � r   

此外,我们还可以使用 py_compile 模块将py文件转换为pyc文件

具体用法:

这个是在交互模式下进行的而不是终端,先导入模块,然后调用该模块下的compile方法

>>> import py_compile
>>> py_compile.compile("文件名.py")

同样生成了一个 __pycache__ 文件夹 ,对应pyc文件即在里面

3、pyc文件的执行

那么pyc文件可以执行吗?

当然是可以的,也是在终端使用python命令执行:

python test.cpython-311.pyc

(注意需要切换到pyc文件所在的路径,即__pycache__ 文件夹下) 

4、pyc文件的反编译

关于反编译我们就需要装一个库了--uncompyle

在终端使用命令进行安装:

pip install uncompyle

反编译命令:

注意: > 前后都有空格,前面为需要进行反编译的pyc文件名,后者为反编译结果的文件名

uncompyle6 test.cpython-311.pyc > test.py 

uncompyle是Python的一个反编译工具,用于将pyc文件反编译为py源码

当然,如果你的Python版本不满足库文件内的要求,大概率是会遇到报错的

最常见报错:KeyError: '你的Python版本号'

如下图:

关于这个问题的解决办法,我放在下一篇博客(Python专栏),问题已彻底解决,欢迎参考!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

009 OpenCV threshold

一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、二值化算法 2.1、概述 在机器视觉应用中&#xff0c;OpenCV的二值化函数threshold具有不可忽视的作用。主要的功能是将一幅灰度图进行二值化处理&#xff0c;以此大幅降低图像的数…

webAPI serial——串口连称

重点 关闭正在读的串口 借鉴文章:webapi串口 async closeport() {this.$emit("changeSerialStatus", false);//这里要注意&#xff0c;一定要关闭读取this.status false;//取消后&#xff0c;done会变成true&#xff0c;会执行reader.releaseLock();this.reader.c…

ESP32 MicroPython 颜色及二维码识别⑫

ESP32 MicroPython 颜色及二维码识别⑫ 1、颜色识别2、二维码识别 1、颜色识别 使用AI颜色识别功能&#xff0c;可以实现颜色辨别、颜色追踪等应用。颜色识别模型内置有9种常见的颜色识别和一种颜色学习识别模式。他们分别是&#xff1a; ai.COLOR_RED 表示识别红色 ai.COLOR…

【C语言】深入解开指针(四)

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; 啊森要自信的主页 ✏️真正相信奇迹的家伙&#xff0c;本身和奇迹一样了不起啊&#xff01; 欢迎大家关注&#x1f50d;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;>希望看完我的文章对你有小小的帮助&am…

使用 PowerShell 创建共享目录

在 Windows 中&#xff0c;可以使用共享目录来将文件和文件夹共享给其他用户或计算机。共享目录可以通过网络访问&#xff0c;这使得它们非常适合用于文件共享、协作和远程访问。 要使用 PowerShell 创建共享目录&#xff0c;可以使用 New-SmbShare cmdlet。New-SmbShare cmdl…

【C++高阶(四)】红黑树深度剖析--手撕红黑树!

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; 红黑树 1. 前言2. 红黑树的概念以及性质3. 红黑…

图像分类原理

一、什么是图像分类(Image Classification) 图像分类任务是计算机视觉中的核心任务&#xff0c;其目标是根据图像信息中所反映的不同特征&#xff0c;把不同类别的图像区分开来。 二、图像分类任务的特点 对于人来说&#xff0c;完成上述的图像分类任务简直轻而易举&#xf…

Elasticsearch:FMA 风格的向量相似度计算

作者&#xff1a;Chris Hegarty 在 Lucene 9.7.0 中&#xff0c;我们添加了利用 SIMD 指令执行向量相似性计算的数据并行化的支持。 现在&#xff0c;我们通过使用融合乘加 (Fused Mulitply-Add - FMA) 进一步推动这一点。 什么是 FMA 乘法和加法是一种常见的运算&#xff0c;…

聚观早报 |快手Q3营收;拼多多杀入大模型;Redmi K70E开启预约

【聚观365】11月23日消息 快手Q3营收 拼多多杀入大模型 Redmi K70E开启预约 华为nova 12系列或下周发布 亚马逊启动“AI就绪”新计划 快手Q3营收 财报显示&#xff0c;快手第三季度营收279亿元&#xff0c;同比增长20.8%&#xff1b;期内盈利21.8亿元&#xff0c;去年同期…

梁培强:塑造下一代投资高手

在当前全球经济动荡和金融市场快速变化的背景下&#xff0c;梁培强的投资教育计划不仅仅是一套课程&#xff0c;它是对传统投资理念的深度挑战和革新。梁培强&#xff0c;拥有超过二十年金融行业经验的资深分析师&#xff0c;正在引领一场投资者教育的变革&#xff0c;旨在培养…

基于深度学习的文本分类

通过构建更复杂的深度学习模型可以提高分类的准确性&#xff0c;即分别基于TextCNN、TextRNN和TextRCNN三种算法实现中文文本分类。 项目地址&#xff1a;zz-zik/NLP-Application-and-Practice: 本项目将《自然语言处理与应用实战》原书中代码进行了实现&#xff0c;并在此基础…

Oracle的控制文件多路复用,控制文件备份,控制文件手工恢复

一.配置控制文件多路复用 1.查询Oracle的控制文件所在位置 SQL> select name from v$controlfile;NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_a…

SpringBoot集成七牛云OSS详细介绍

&#x1f4d1;前言 本文主要SpringBoot集成七牛云OSS详细介绍的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&a…

geemap学习笔记012:如何搜索Earth Engine Python脚本

前言 本节主要是介绍如何查询Earth Engine中已经集成好的Python脚本案例。 1 导入库 !pip install geemap #安装geemap库 import ee import geemap2 搜索Earth Engine Python脚本 很简单&#xff0c;只需要一行代码。 geemap.ee_search()使用方法 后记 大家如果有问题需…

进程间通信(管道/消息队列/共享内存/信号量)

目录 一、进程间通信介绍1.1 进程间通信的目的1.2 进程间通信的发展1.3 进程间通信的分类 二、管道2.1 什么是管道&#xff1f;2.2 匿名管道2.3 实现匿名管道通信的代码2.4 用fork来共享管道原理2.5 站在文件描述符角度-深度理解管道2.6 站在内核角度-管道本质2.7 管道读写的规…

2023 年 亚太赛 APMCM (C题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 问题一 为了分析中国新能源电动汽车发展的主要因素&#xf…

电线电缆行业生产管理怎么数字化?

行业介绍 随着市场环境的变化和现代生产管理理念的不断更新&#xff0c;电缆的生产模式也在发生转变&#xff0c;批量小&#xff0c;规格多&#xff0c;交期短的新型制造需求逐年上升&#xff0c;所以企业车间管理的重要性越发凸显&#xff0c;作为企业良性运营的关键&#xf…

MySQL--慢查询(一)

1. 查看慢查询日志是否开启 show variables like slow_query%; show variables like slow_query_log; 参数说明&#xff1a; 1、slow_query_log&#xff1a;这个参数设置为ON&#xff0c;可以捕获执行时间超过一定数值的SQL语句。 2、long_query_time&#xff1a;当SQL语句执行…

汇编-PUSHFD和POPFD标志寄存器值压栈和出栈

PUSHFD指令将32位EFLAGS寄存器内容压入堆栈&#xff0c; 而POPFD指令则将栈顶单元内容弹出到EFLAGS寄存器 格式&#xff1a;

【开源】基于Vue和SpringBoot的学校热点新闻推送系统

项目编号&#xff1a; S 047 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S047&#xff0c;文末获取源码。} 项目编号&#xff1a;S047&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新…