文件打包在.py文件中并且在其他代码当中调用文件的实现

文件打包在.py文件中并且在其他代码当中调用功能的实现


在我们使用python进行代码编写时,如果我们希望在代码中使用某个文件,通常我们需要找到指定路径,并找到该路径下的文件。而在我们实现一些功能例如编写GUI应用时,在我们使用pyinstaller进行文件打包时,文件并不会被写入代码当中,所以我们往往需要在应用当中内置这些图片。这时就有了一个问题,如何在python当中实现这个功能呢?

Base64编码

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.

关于Base64编码内容较多,大家可以自行去查找相关文献进行阅读。

在这里我们只需要知道它时一种编码方法就可以,我们可以考虑将我们使用的目标文件用该编码方法进行Base64编码,再进行解码为二进制编码写入.py文件当中。

在使用时我们只需要将该文件当作第三方库在代码当中调用即可。

代码(可直接套用)

下面代码示例是将我自己桌面上的a.jpg图片文件转换为了a_jpg.py文件。

import base64
 
def propy(project_name):
    open_pro = open("%s" % project_name, 'rb')
    b64str = base64.b64encode(open_pro.read())
    open_pro.close()
    # 注意这边b64str一定要加上.decode()
    write_data = 'project = "%s"' % b64str.decode()
    f = open('%s.py' % project_name.replace('.', '_'), 'w+')
    f.write(write_data)
    f.close()
 
if __name__ == '__main__':
    pics = ['C:/Users/lenovo/Desktop/a.jpg'] 
    for i in pics:
        propy(i)
    print("OK")#完成便会输出OK

在使用时是同样需要导入base64库,就会在相同路径下生成相应的文件。

import base64
from a_jpg import project as p

tmp = open('1.jpg','wb')#文件名自己设定,后面参数为二进制写入格式,不可更改。
tmp.write(base64.b64decode(p))
tmp.close()

文件的删除

如果使用完该文件,我们可以使用os.remove()的功能将生成的文件进行删除。

import os
os.remove('1.jpg')

总结

在上述处理过后,我们通过编码与解码实现了文件在代码中的导入与删除,这样在我们使用pyinstaller进行文件打包时就可以将文件直接解码读取并且使用结束后删除,实现了我们所需的功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

choosetobehappy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值