python爬虫中pyc文件的生成和使用

一、pyc文件是什么?

python中的pyc扩展名文件,类似于Java的Class字节码文件,是由编译器编译得来的,供解释器使用;
当我们部署程序时,不想暴露源码,可以使用pyc文件;
它存在__pycache__文件里

二、生成单个pyc

方式一:命令行:
使用python内置的py_compile库,操作简单;

python3.6 -m py_compile test.py

python也可以不用指定版本
-m的作用:把模块当作脚本来执行
方式二:脚本:

#!/usr/bin/env python3.6
# coding=utf-8
import py_compile
 
py_compile.compile('test.py')

执行完后,会出现名为“pycache”的文件夹,里面有test.cpython-36.pyc文件;

我们运行此pyc文件,

python3.6 __pycache__/test.cpython-36.pyc

三、批量生成pyc

使用python内置的compileall库;

同样有2种方式,这里使用命令行演示;

test文件夹下有两个文件test.py和test2.py;

使用命令行,一次将2个文件编译成对应的2个pyc文件,
方式一:命令行:

python3.6 -m compileall test

执行完毕后,在test文件夹下会生成__pycache__文件夹,其中有两个pyc文件,test2.cpython-36.pyc和test.cpython-36.pyc,这两个pyc文件也可以执行。
方式二:脚本:

import compileall
compileall.compile_dir(r'/Users/***/PythonFiles/')

Python Shell 命令生成

直接通过命令来运行,可以看到下面的命令中并没有用到compile()函数, 这是因为py_compile模块的main()函数中调用了compile().

 python3 -m py_compile ****.py

 python3 -O -m py_compile ****.py

-O 优化成字节码
-m 表示把后面的模块当成脚本运行

-OO 表示优化的同时删除文档字符串

如果你想看compile(), compile_dir(), compile_path()具体每个参数是干吗用的,可以使用print py_compile.compile().__doc__来查看,或者直接打开py_compile.py,compileall.py文件来看。

四、具体使用

直接使用python编译源码时,会生成对应的(.pyc)文件,这些文件会被存放在__pycache__文件夹下,我们可以将里边的文件copy出来,这时候可以删除对应的.py文件,同时需要将***.pyc文件的名字进行修改。

例如: python 的.py文件叫 main.py, 生成的.pyc文件叫main.cpython-36.pyc,在我们使用该模块的时候,需要将main.cpython-36.pyc修改为main.pyc, 这里的“cpython-36”表示的是我在python 3.6 的环境下编译的。改完以后,在命令行使用命令运行总pyc文件或者单个文件就可以了

你可能感兴趣的:(requests,python)