你可以尝试以下方法:
建立虚拟环境,减少Python打包额外的第三方库
使用upx和pyinstaller进行压缩
使用upx和nuitka进行压缩
这几种方法网上可以找到很多教程,都能够在一定程度上减小打包出来的文件大小,但是因为Python的解释型语言,除了使用nuitka编译成exe以外,其它的压缩方法作用一般不大,但是使用nuitka编译后的文件也会有较大的体积。
python读取文件大小的代码如下:[python] view plaincopyimport os
from os.path import join, getsize
def getdirsize(dir):
size = 0L
for root, dirs, files in os.walk(dir):
size += sum([getsize(join(root, name)) for name in files])
return size
if '__name__' == '__main__':
filesize = getdirsize(r'c:\windows')
print 'There are %.3f' % (size/1024/1024), 'Mbytes in c:\\windows'
在说os.walk前,我们先在ipython3中help一下,打印如下
os.walk返回一个生成器,每次遍历返回的对象是一个元组,元组中包含三个元素:
dirpath:当前遍历的文件夹的路径,类型为字符串;
dirname:当前遍历的文件夹下的子文件夹的名字,类型为列表;
filenames:当前遍历的文件夹下的文件的名字,类型为列表;
创建一个包含子文件夹和文件的walk文件夹,通过终端tree看一下目录结构:
我们通过for循环遍历os.walk()的返回结果
运行结果如下:
使用os.walk()获取文件夹下的文件大小: