首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python pyc文件解析_pyc文件

 code object¶ 在我们导入 python 脚本时在目录下会生成个一个相应的 pyc 文件,是pythoncodeobj的持久化储存形式,加速下一次的装载。...文件结构¶ pyc文件由三大部分组成 最开始4个字节是一个Maigc int, 标识此pyc的版本信息 接下来四个字节还是个int,是pyc产生的时间 序列化的 PyCodeObject,结构参照include.../code.h,序列化方法python/marshal pyc完整的文件解析可以参照 关于co_code 由 python3.6 以上参数永远占1字节,如果指令不带参数的话则以0x00代替,在运行过程中被解释器忽略...python3.5的版本中指令不带参数的话却没有0x00填充 例题¶ 首先尝试pycdc反编译失败 # Source Generated with Decompyle++ # File: imgenc.pyc...img.shape[0] # WARNING: Decompyle incomplete 注意到是python2.7,也就是说指令序列共占1字节或3字节(有参数无参数) 使用pcads得到 imgenc.pyc

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python运行pyc文件_Python pyc文件

    什么是pyc文件 pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的。...pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。...pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同。 为什么需要pyc文件 这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?...一个是对应CodeObject.py的,一个是对应class A这段Code(作用域),而最后一个是对应def Fun这段Code的。...但是不幸的是,Python在执行完这些byte code后,会销毁PyCodeObject,所以下次再次执行这个.py文件时,Python需要重新编译源代码,创建三个PyCodeObject,然后执行byte

    1.7K50

    如何把pyc反编译成py_exe文件反编译源码工具

    今天手残了,本来想着删掉项目里面所有的pyc文件,不知道脑袋想着什么就变成了find ....-type f -name "*.py" -exec rm -f {} \; 结果你懂得,我这两天写的代码还没提交到git!...整个人瞬时懵逼…… 后来看着文件夹里面还剩下的pyc文件我灵机一动,可以试试从pyc文件反编译回去,经过高人指点,有了下面这段 使用uncompyle 项目地址:https://github.com...> models.py 将models.pyc反编译成py文件 uncompile -o . *.pyc 将当前文件夹中所有的pyc文件反编译成后缀名为.pyc_dis的源文件 总结 反编译后的效果可以说很理想...,如果你的代码格式符合PEP8规范的要求,那就基本和源来的文件一样,不过各种注释就没有了(不能要求太高是不是) 最后改的代码还没有运行(没有生成pyc)的,就真的丢了,不过不多,再写一遍吧!

    1.3K30

    xxx.opt-1.pyc、xxx.opt-2.pyc和xxx.pyc的区别

    在安装python后,我们会在它的安装目录下见到大量的类似xxx.opt-1.pyc、xxx.opt-2.pyc和xxx.pyc这样的文件。 比如以下这样,那么它们之前有什么区别呢?...expatreader.cpython-39.opt-1.pyc expatreader.cpython-39.opt-2.pyc expatreader.cpython-39.pyc 这三个文件是...expatreader.cpython-39.opt-1.pyc 是在编译过程中使用较低优化级别(-O1)生成的优化字节码文件。...expatreader.cpython-39.opt-2.pyc 是在编译过程中使用较高优化级别(-O2)生成的优化字节码文件。它进行了更深入的优化,以提高执行速度和性能。...expatreader.cpython-39.pyc 是未进行优化的默认字节码文件。它是在编译过程中没有使用特定的优化级别生成的,保持了一定的可读性和兼容性。

    12610

    如何生成Python的 .pyc 文件

    生成Python的pyc文件可以使用Python内置的模块如py_compile和compileall,通过编译源代码(.py文件)来生成字节码文件(.pyc文件) 什么是 .pyc 这里不在赘述 下面将详细分析如何手动和批量生成...使用py_compile模块生成单个.pyc文件 命令行方式:利用Python的命令行参数,可以快速将单个.py文件编译为.pyc文件。...例如,使用命令 python3.6 -m py_compile test.py 将会生成一个名为__pycache__/test.cpython-36.pyc的文件 脚本方式:在Python脚本中导入py_compile...例如,执行以下代码: import py_compile py_compile.compile('test.py') 会在当前目录下生成对应的pyc文件 2....使用compileall模块批量生成.pyc文件 命令行方式:当需要将一个目录下的多个.py文件编译成.pyc文件时,可以使用compileall模块。

    14510

    什么是pyc文件

    其实很简单, 用 python -m py_compile file.py python -m py_compile /root/src/{file1,file2}.py 编译成pyc文件。...文件 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的...当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出 py文件源码,网上可以找到一个反编译python2.3版本的pyc...生成单个pyc文件 python就是个好东西,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块。...使用方法非常简单,如下所示,直接在idle中,就可以把一个py文件编译为pyc文件了。

    80210

    什么是.pyc文件

    Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!...当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。...其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。4....当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,先对.pyc文件和.py文件的最近一次的修改时间进行判断,如果.pyc文件的修改时间晚于.py文件,说明.py文件中的源代码未修改过...所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

    1.1K20

    ​攻防世界pyc-trade

    攻防世界pyc-trade <img src="https://img-blog.csdnimg.cn/20200814232918821.png?...文件:在硬盘上看到的<em>pyc</em>文件,其实PyCodeObject才是Python编译器真正编译成的结果。...当python程序运行时,编译的结果是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到<em>pyc</em>文件中。...当python程序第二次运行时,首先程序会在硬盘中寻找<em>pyc</em>文件,如果找到,则直接载入,否则就重复上面的过程。所以,我们可以说<em>pyc</em>文件其实是PyCodeObject的一种持久化保存方式。...1.得到一个<em>pyc</em>文件,前往进行反编译 2.得到代码 <img src="https://img-blog.csdnimg.cn/20200814232602286.png?

    30010

    pyc是个什么鬼?

    我初学Python时,听到的关于Python的第一句话就是,Python是一门解释型语音,我就这样一直相信下去,知道发现了*.pyc文件的存在.如果是解释型语音,那么生成的*.pyc文件是什么呢?...当我们在命令行中输入python hello.py时,其实是激活了Python的"解释器"告诉"解释器":你要开始工作了.可是在"解释"之前,其实执行的第一项工作和Java一样,是编译....Java的程序: javac hello.java java hello 只是我们在用Eclipse之类的IDE时,将这两部给融而成了一部而已.其实Python也一样,当我们执行python hello.py...当Python程序第二次运行时,首先程序会在硬盘中寻找pyc文件.如果找到,则直接载入,否则就重复上面的过程....所以我们应该这样来定位PycodeObject写回到pyc文件,我们说pyc文件其实是PycodeObject的一种持久化保存方式.

    91120

    python .pyc是个什么啥?

    当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。...其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。 4....下次再运行代码时,直接从当前路径的__pycache__目录中寻找pyc文件,直接载入,不需要编译了。 那么问题就来了 如果我更新了login.py文件,下次执行时。...python直接读取pyc文件,直接载入了。那么代码执行还是老的呀! python 为了解决这个问题。在执行时,会判断pyc文件和login.py(原文件),这2个文件的更新时间。...如果发现原文件有更新,就会重新执行编译过程,更新pyc文件。 测试一下,现在的pyc文件的更新时间是 ? 更改login.py的文件内容,末尾加几个回车 再次运行代码: ? 耶,文件时间变了!

    60310

    python 实现选课系统

    角色:学校、学员、课程、讲师 >作业需求 - [ ] 1.创建北京、上海 2 所学校 - [ ] 2.创建linux , python , go 3个课程 , linux\py 在北京开,...程序说明 实现功能如下 - [x] 1.创建北京、上海2所学校 - [x] 2.创建linux,python,go3个课程,linux\py在北京开,go在上海开 - [x] 3.课程包含,周期,价格...-35.pyc │   │   │   └── settings.cpython-36.pyc │   │   └── settings.py # 配置文件 │   ├── core # 选课系统主要逻辑程序目录...-35.pyc │   │   │   └── operate.cpython-36.pyc │   │   ├── logger.py # 日志记录模块 │   │   ├── main.py...-36.pyc │   │   │   ├── school.cpython-35.pyc │   │   │   └── school.cpython-36.pyc │   │   ├── account.py

    1.1K30
    领券