原标题:@程序员,用 Python 给女朋友准备个儿童节礼物可好?

作者 | 猿媛牧场

现在谈个恋爱、结个婚是真的炸啊。你 2.14 要送礼物,我认了,必须送啊,没有理由不送啊;3.14 白色情人节,说好的女方还礼呢?我老婆送我包纸巾?5.1 劳动节,她最光荣。这不,今天就儿童节了,礼物呢?(刚过的 3.8 妇女节这就忘了?)

行啊,咱们程序猿,特别是 Pythoner,不得好好准备下?今儿个,礼物已经打包完毕了,请自行拆开。

tar2zip.py:

importtarfile, zipfile, glob, os, time

fromio importBytesIO

defgetuser():

# 模拟返回用户名、用户id

return"Miracle", 666

defgetmode(name, data):

# 返回文件类型,"b" 或 "t"

# 假设我们现在都是字符,没有二进制文件

return"t"

now = time.time()

user = getuser()

deffixup(infile):

file, ext = os.path.splitext(infile)

outfile = file + ".tar.gz"

print( f'outfile: {outfile}')

zip = zipfile.ZipFile(infile, "r") # 使用读模式打开zip压缩包

tar = tarfile.open(outfile, "w:gz") # 使用gzip、写 模式打开

tar.posix = 1

# 遍历zip包里面的内容

forname inzip.namelist():

ifname.endswith( "/"):

continue

data = zip.read(name)

ifgetmode(name, data) == "t":

# py3中zip读出来的是二进制,需要解码,bytes不能replace

data = data.decode().replace( "rn", "n")

# 添加一些tar包属性

tarinfo = tarfile.TarInfo()

tarinfo.name = name

tarinfo.size = len(data)

tarinfo.mtime = now

tarinfo.uname = tarinfo.gname = user[ 0]

tarinfo.uid = tarinfo.gid = user[ 1]

# 加入文件的时候,第二个参数fileobj必须是二进制,所以用BytesIO

tar.addfile(tarinfo, BytesIO(data.encode()))

tar.close()

zip.close()

if__name__ == '__main__':

# 将当前目录下的所有文件夹都遍历一遍

forfile inglob.glob( "*.zip"):

fixup(file)

结果截图:

其实到这儿你们已经发现了,这其实是一个平时工作中会经常用到的小工具。

特别是运维 er,每天都有数不完的拆包、压包。

有了它,再也不用敲命令了,当然还有很多改进的地方,比如:文件夹、图片等其他资源的操作。

本文为作者投稿,版权归原作者所有。

责任编辑:

程序员女朋友礼物python代码_@程序员,用 Python 给女朋友准备个儿童节礼物可好?...相关推荐

  1. 在树莓派里面运行python代码_树莓派如何运行python程序

    树莓派如何运行python程序 发布时间:2020-09-23 12:03:39 来源:亿速云 阅读:128 作者:小新 这篇文章主要介绍了树莓派如何运行python程序,具有一定借鉴价值,需要的朋友 ...

  2. 微信跳一跳python代码_微信跳一跳python程序

    #源码下载地址:https://files.cnblogs.com/files/cnfan/jump.rar importosimportcv2importnumpy as npimporttimei ...

  3. 手机如何看python代码_用手机运行Python代码

    前言 在手机上运行Python需要用一个软件,叫QPython3L,当然还有别的软件也是可以运行Python的,不过我认为QPython3L是其中相对较好的一个. 首先声明一下,我也只是会简单的使用 ...

  4. 聚类 python 代码_不足 20 行 Python 代码,高效实现 k-means 均值聚类算法

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 不足 20 行 Python 代码,高效实现 k-means 均值聚类算法-1.jpg (143.81 KB, ...

  5. pycharm写python代码_使用pycharm写python代码的一些提高效率的技巧(持续更新)-Go语言中文社区...

    这篇博客主要是用来记录自己在学习pycharm时发现的一些能够提高编写python代码效率的小技巧. 1.问题:在代码很多的情况下,调用函数时想看看函数的参数以及函数内容,按ctrl+鼠标左键虽然进入 ...

  6. 如何修改python代码_解决如何去除Python代码前行号的方法

    获取Python脚本代码前行号的方法我们已经知道了,那如何去除Python脚本代码前行号的方法又是怎样的呢?今天我们就来为大家写个实例代码来看下. 刚刚接触Python时,因为经常要在网上拷贝别人的代 ...

  7. 交叉验证python代码_交叉验证以及python代码实现

    这篇文章介绍的内容是关交叉验证以及python代码实现 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 模型选择的两种方法:正则化(典型方法).交叉验证. 这里介绍交叉验证及其pyth ...

  8. 怎么读python代码_【怎么读python代码】作文写作问答 - 归教作文网

    python怎么读 python : 发音:英 [ˈpaɪθən] 美 [ˈpaɪθɑ:n] 中文释义:巨蛇,大蟒 复数形式:pythons 英文单词,意为巨蛇,大蟒. 扩展资料: 例句如下:When ...

  9. 猿编程python代码_程序猿编程课堂 Python学习之入门篇3:简单的数据类型

    1. 什么是数据类型? 我们知道编程就是编写程序解决某个问题,而任何能使用编程来解决的问题都是能够提取或者转换出相应的数据,只是数据的表达形式是不一样的,而这表达形式就是数据类型. 比如,数学中的数字 ...

最新文章

  1. [Javascript]编程风格
  2. 【Groovy】集合遍历 ( 使用集合的 find 方法查找集合元素 | 闭包中使用 == 作为查找匹配条件 | 闭包中使用 is 作为查找匹配条件 | 闭包使用 true 作为条件 | 代码示例 )
  3. grads 相关系数_基于小波变换的多聚焦图像融合算法
  4. js事件流、事件代理等
  5. 小米、360、京东之后 阿里联手美的杀入智能家居市场
  6. zeppelin的安装与使用
  7. MATLAB工具箱介绍
  8. 执行caffe的draw_net.py出现“GraphViz's executable dot not found”的解决方法
  9. CSS3表达式calc( )
  10. 如何自学并且系统学习计算机网络?(知乎问答)
  11. 怎么提高Mysql执行sql导入的速度
  12. 浏览器升级怎么升_测评:iOS 13 升不?新老机型跑分对比!
  13. Windows勒索病毒防范、解决方法全攻略
  14. 敏捷需求描述:用户故事
  15. java计算机毕业设计劳务外包管理系统源码+系统+mysql数据库+lw文档
  16. 使用 EF Core Power Tools 和 CoreAdmin 在 5 分钟内将管理员 CRUD 网页添加到您的 ASP.NET Core Web 应用程序
  17. 混合拉普拉斯分布(LMM)推导及实现
  18. 数据分析师要掌握什么知识和技能?
  19. 【JS】Math对象随机数方法
  20. TRS_WCM(拓尔思信息技术有限公司)内容协作平台平台置标经验攻略

热门文章

  1. 读书笔记-《ON JAVA 中文版》-摘要9[第九章 多态]
  2. 基于Python和TensorFlow的AI作曲的设计与实现
  3. 富怡CAD计算机在哪,富怡CAD软件如何与富怡数字化仪进行连接
  4. 计算机科学家尼沃思曾经提出了,2010年江苏省专转本计算机真题含答案
  5. ubuntu做主机双网卡共享上网方法
  6. python和r语言做大数据_R和python大数据
  7. 6.824-lab1
  8. 有梦想的人,始终在路上!(记阿里实习生霸面经历,拿到offer)
  9. linux系统安装搜狗输入法指南
  10. Android 10.0 系统禁用深色主题背景功能