python文件的两种类型进制文件_Python使得.py文件转换为二进制文件

有时候我们想要以藏自己的脚本源代码,使得其代码源文件转换为二进制文件,进行加密 。在Python中可以将.py文件编译为pyc和pyo文件。

代码很简单

python -m py_complie file.py

python -m py_complie /root/src/{file1,file2}.py

编译成pyc文件

编译成pyo文件。

1.其中的 -m 相当于脚本中的import,这里的-m py_compile 相当于上面的 import py_compile

2.-O 如果改成 -OO 则是删除相应的 pyo文件,具体帮助可以在控制台输入 python -h 查看

python -O -m py_compile file.py

解释下什么是pyc文件,pyo文件,pyd文件

pyc是一种二进制文件,有py文件编译后生成的文件,是一种byte code,py文件编程pyc文件后,加速的速度有所提高,而且pyc是一种跨平台的字节码,是有python的虚拟机来执行的,这个是类似于java或者.net的虚拟机的改变, pyc的内容,是跟python的版本相关,不同版本编译后的pyc文件是不容的,不同版本的Python环境是无法执行pyc的

什么是pyo文件

pyo文件相当于是在pyc文件的基础上进行了进一步的优化,相比pyc文件更小,也可以提高加在速度,但对于嵌入式系统,它可将所需模块编译成.pyo文件以减少容量。

个人使用的原因:不想让别写看见自己写的代码,嘿嘿

-O,表示优化生成.pyo字节码

-OO,表示进一步移出-O选项生成的字节码文件中的文档字符串(这是在作用效果上解释的,而不是说从-O选项得到的文件取出)

-m 表示导入并运行执行的模块

py_compile是Python的自带模块,这里面就两个函数。其下的py_compile.compile(file[, cfile[, dfile[, doraise]]])可将.py文件编译生成.pyc文件(默认),对应的参数解释如下file,表示需要生成.pyc或.pyo文件的源脚本名(字符串);cfile,表示需要生成.pyc或.pyo文件的目标脚本名。也就是源脚本—->目标脚本。当然,它默认是以.pyc为扩展名的路径名的字符串。此外,当且仅当所使用的解释器允许编译成.pyo文件,才能以“.pyo”结尾。这也就是我上面为什么会在函数功能解释上加上“(默认)”这两个字的原因。dfile,表示编译出错时,将报错信息中的名字“file”替换为“dfile”。doraise,设置是否忽略异常。若为True,则抛出PyCompileError异常;否则直接将错误信息写入sys.stderr(提示:sys.stderr是Python自带的标准错误输出)

再聊聊.pyd文件。

哈哈哈,是 Python的动态链接库。

批量生成pyc文件

一般来说,我们的工程都是在一个目录下的,一般不会说仅仅编译一个py文件而已,而是需要把整个文件下的py文件都编译为pyc文件,python又为了我们提供了另一个模块:compileall。使用方法如下:

import compileall

compileall.compile_dir(r’F:\baby’)

也可以直接用命令行编译一个目录下的文件,如:#python -m compileall /root/src

这样就把root目录下的game目录,以及其子目录下的py文件编译为pyc文件了。

W4rr10r 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Python使得.py文件转换为二进制文件!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值