micropython 解压实现.tar.gz

目录

 

1、python3.10压缩程序

2、micropython 1.19.1 解压程序

3、结果


1、python3.10压缩程序

        打包并压缩log路径下的所有文件到logo.tar.gz文件中

import os
import  tarfile
tf = tarfile.open(name='logo.tar.gz',mode='w:gz')
tf.add('log/')
tf.close()  #关闭

2、micropython 1.19.1 解压程序

        这部分代码参考upip.py文件。在micropython 1.19.1开源代码中可以找到。

import gc
import uzlib
import upip_utarfile as tarfile
import upip
import os
import time

gc.collect() #这部分占用的资源会比较多,先主动释放一些垃圾

gzdict_sz = 16 + 15
sz = gc.mem_free() + gc.mem_alloc()
print('sz', sz)
if sz <= 65536:
    gzdict_sz = 16 + 12

t1 = time.ticks_ms()

f1 = open('logo.tar.gz', 'rb')  # url_open(package_url)
try:
    f2 = uzlib.DecompIO(f1, gzdict_sz)
    f3 = tarfile.TarFile(fileobj=f2)
    meta = upip.install_tar(f3, '/file/')
finally:
    f1.close()
del f3
del f2

gc.collect()

t2 = time.ticks_ms()

print(f"耗时:{t2-t1} ms")

 执行结果:

sz 111168
耗时:4391 ms
Welcome to RT-Thread MicroPython!

3、结果

        3.1、原始的文件夹大小168k,压缩打包后44k,esp32解压耗时4.391s。

        3.2、解压出来之后会多一个【@PaxHeader】文件,说是win10对压缩文件的处理问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值