Python的pyc文件

pyc文件就是由Python文件经过编译后所生成的文件,py文件编译成pyc文件后加载速度更快而且提高了代码的安全性。pyc的内容与python的版本相关,不同版本编译的pyc文件不一样

什么是pyc文件

pyc是一种二进制文件,是由Python文件经过编译后所生成的文件,它是一种byte code,Python文件变成pyc文件后,加载的速度有所提高,而且pyc还是一种跨平台的字节码,由python的虚拟机来执行的,就类似于JAVA或者.NET的虚拟机的概念。pyc的内容与python的版本是相关的,不同版本编译后的pyc文件是不同的,例如2.5版本编译的是pyc文件,而2.4版本编译的python是无法执行的

为什么要pyc文件

因为py文件是可以直接看到源码的,但是一般情况下开发出来的商业软件都不可能直接把源码泄漏出去,这样我们就需要把它编译成pyc文件来保护源码。另外pyc文件也是可以反编译的,不同版本编译后的pyc文件是不一样的,这主要是根据Python源码中所提供的opcode来决定。

生成单个pyc文件

python是一门很好的语言,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块。接下来将在文中中为大家讲解如何生成单个pyc文件

import py_compile``py_compile.compile(r'H:/game/test.py')

使用的方法非常简单,如上所示,直接在idle中,就可以把一个py文件编译为pyc文件了(假设在windows环境下)

compile函数语法:

compile(file[, cfile[, dfile[, doraise]]])

file :表示得是需要编译的py文件的路径

cfile :表示编译后的pyc文件名称和路径,默认为直接在file文件名后加c 或者 o,o表示优化的字节码

dfile:指的是错误消息保存的路径

doraise :有两个值分别是true或false,如果为true时则会引发一个PyCompileError,否则如果编译文件出错,则会有一个错误,默认显示在sys.stderr中,而不会引发异常

批量生成pyc文件

一般在项目中我们不会仅仅只编译一个py文件,而是需要将整个文件夹下的py文件都编译成pyc文件,这时我们可以通过以下的方法来实现:

import compileall``compileall.compile_dir(r'H:/game')

意思就是把game目录下以及其子目录下的py文件都编译为pyc文件了

compileall函数语法:

compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])

dir: 表示需要编译的文件夹位置

maxlevels :表示需要递归编译的子目录的层数,默认是10层,即默认会把10层子目录中的py文件编译为pyc

ddir :表示错误消息保存的路径

force:当为true时表示会被强制编译成pyc文件,即使pyc文件是最新的依然会被强制编译一次

rx: 表示一个正则表达式,可以排除掉不想要的目录,或者只有符合条件的目录才进行编译

quiet:当为True时,在编译后不会再标准输出中来打印信息

Python的pyc文件相关推荐

  1. Python之pyc文件作用及生成方法

    Python之pyc文件作用及生成方法_宗而研之的博客-CSDN博客 1 什么是pyc 首先了解下python的运行机制及特性:当我们运行python文件程序的时候,Python解释器将源码转换为字节 ...

  2. python生成pyc文件可以互用吗_Python生成pyc文件

    Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code).pyc文件经过python解释器最终会生成机器码运行.所以pyc文件是可以跨平台部署的,类似Java的.c ...

  3. python运行pyc文件_python中__pyc__文件的生成和作用

    本文出自"阿敏其人"简书博客,转载请注明出处. 文/阿敏其人 当我们的python文件被编译过,文件之间存在import关系,就会生成一个__pyc__文件夹. 比如我们新建一个工 ...

  4. XCTF-攻防世界CTF平台-Reverse逆向类——52、handcrafted-pyc(Python的pyc文件逆向)

    下载题目附件之后,查看附件52: 发现它就是一个Python代码文件 #!/usr/bin/env python # -*- coding: utf-8 -*-import marshal, zlib ...

  5. 如何用python查看pyc文件_如何理解.pyc文件内容

    .pyc文件包含一些元数据和一个^{}edcode对象:加载code对象并反汇编使用:import dis, marshal, sys # Header size changed in 3.3. It ...

  6. python相关pyc文件的编译、运行和反编译

    0x01. 什么是pyc文件 最近做ctf习题,发现经常会给一下pyc文件,pyc文件是py文件编译后生成的字节码文件(byte code).pyc文件经过python解释器最终会生成机器码运行.所以 ...

  7. 【python】pyc文件反编译为py文件

    需求:把项目里的 pyc 文件反编译出来,查看接口函数的逻辑 解决方案:uncompyle6可将python字节码转换回等效的python源代码,它接受python 1.3版到3.8版的字节码 具体实 ...

  8. python编译pyc文件

    什么是pyc文件 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的 ...

  9. 一文让你搞懂 Python 的 pyc 文件

    上一篇文章我们介绍了字节码,当时提到,py 文件在执行的时候会先被编译成 PyCodeObject 对象,并且该对象还会被保存到 pyc 文件中. 但不幸的是,事实并不总是这样,有时当我们运行一个简单 ...

最新文章

  1. 2018中国计算机大会,阿里云分布式存储架构师:自研分布式文件系统服务
  2. 导出excel表格,前端和后台导出
  3. HTML与CSS基础之常用选择器(一)
  4. 使用JNDI操作LDAP(4)(转载)
  5. python同步oracle_Python cx_Oracle 7引入苏打文档存储
  6. 谷歌浏览器登录不了账号_谷歌浏览器使用分享(可谷歌账号登录)之谷歌账号登录...
  7. Apple分区总体布局结构
  8. DM8168 unrecoverable error: OMX_ErrorBadParameter (0x80001005) [resolved]
  9. python绘制多边形_在python-matplotlib中绘制3D多边形
  10. python3.7安装pyltp出错_安装pyltp遇到的问题及解决办法
  11. Python_notes_05
  12. 在win7 64位上安装VS2015的问题汇总
  13. java几次,java兑现限制用户几次登录
  14. Windows 生成ffmpeg安卓全平台so
  15. 4个关键,如何清晰的做好数据分析
  16. 我们的另一半,最熟悉的陌生人
  17. AndroidTV获取U盘路径
  18. 几乎零基础的git入门级分享
  19. 吊打 CLIP 平均10个点,Meta 多模态通用模型 FLAVA真香啊
  20. CLIP在视频领域的应用(CLIPBERT,CLIP4Clip,CLIP2Video,CLIPTV)

热门文章

  1. 子沐课堂——Mysq从入门到精通(三)
  2. xv6-lab3-pgtbl
  3. Log4j输出格式控制--log4j的PatternLayout参数含义以及详细配置
  4. 【Windows】Windows 无法访问\\xxx.xxx.xxx.xxx 共享文件夹
  5. 【 uC/OS II 】uC/OS II 源代码阅读(os_task.c)任务管理
  6. IOS 某电商App签名算法解析(二) Frida RPC调用
  7. loj2038「SHOI2015」超能粒子炮・改(卢卡斯的理解和延伸+数位dp)
  8. 百度PaddlePaddle使用飞桨搭载手写字识别并训练、预测
  9. pip3 install 报错 protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.8
  10. Android 集成百度地图AR识别SDK(一)