内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Python如何將圖像音視頻等資源文件隱藏在代碼中(小技巧)-創(chuàng)新互聯(lián)

下午有同學(xué)Python學(xué)習(xí)群里說,使用pyinstaller打包源碼時,因?yàn)榇a中使用了圖像、音頻、視頻等資源文件,無法將程序打包成單一的可執(zhí)行文件。有沒有方法將這些資源文件按保存在代碼中呢?我想了一下,應(yīng)該是可以的。于是乎,花了一個小時,寫出了下面的代碼,算是拋磚引玉吧。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、柳北網(wǎng)站維護(hù)、網(wǎng)站推廣。

這段代碼可以將二進(jìn)制文件轉(zhuǎn)存為python腳本文件,供其他腳本引用。代碼最后附有使用的例子,演示用的圖片可以隨便照一張。除了轉(zhuǎn)存二進(jìn)制數(shù)據(jù),還提供了兩個方法:

  • get_fp():返回二進(jìn)制的IO對象(類文件對象)
  • save():保存為本地文件
# -*- coding: utf-8 -*-
"""以python模塊形式存儲、使用二進(jìn)制文件"""
import os
import base64
from io import BytesIO
def bin2module(bin_file, py_file=None):
  """二進(jìn)制文件轉(zhuǎn)存為python模塊
  bin_file  - 二進(jìn)制文件名
  py_file   - 生成的模塊文件名,默認(rèn)使用二進(jìn)制文件名,僅更改后綴名
  """
  fpath, fname = os.path.split(bin_file)
  fn, ext = os.path.splitext(fname)
  if not py_file:
    py_file = os.path.join(fpath, '%s.py'%fn)
  with open(bin_file, 'rb') as fp:
    content = fp.read()
  content = base64.b64encode(content)
  content = content.decode('utf8')
  with open(py_file, 'w') as fp:
    fp.write('# -*- coding: utf-8 -*-\n\n')
    fp.write('import base64\n')
    fp.write('from io import BytesIO\n\n')
    fp.write('content = """%s"""\n\n'%content)
    fp.write('def get_fp():\n')
    fp.write('  return BytesIO(base64.b64decode(content.encode("utf8")))\n\n')
    fp.write('def save(file_name):\n')
    fp.write('  with open(file_name, "wb") as fp:\n')
    fp.write('    fp.write(base64.b64decode(content.encode("utf8")))\n')
if __name__ == '__main__':
  """測試代碼"""
  # 將圖像文件轉(zhuǎn)存為img_demo.py
  bin2module('forever.png', 'demo.py')
  # 導(dǎo)入剛剛生成的demo模塊
  import demo
  # 用pillow打開圖像,驗(yàn)證demo模塊的get_fp():返回二進(jìn)制的IO對象(類文件對象)
  from PIL import Image
  im = Image.open(demo.get_fp())
  im.show()
  # 保存為本地文件,驗(yàn)證demo模塊的save():保存文件
  demo.save('demo_save.png')

網(wǎng)頁名稱:Python如何將圖像音視頻等資源文件隱藏在代碼中(小技巧)-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://www.rwnh.cn/article40/cseeho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司營銷型網(wǎng)站建設(shè)、定制網(wǎng)站小程序開發(fā)、品牌網(wǎng)站建設(shè)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
威海市| 根河市| 通城县| 右玉县| 洛宁县| 内乡县| 乐清市| 孙吴县| 鹿邑县| 襄樊市| 吉木乃县| 田阳县| 平凉市| 清水河县| 合阳县| 邻水| 都兰县| 简阳市| 双鸭山市| 南澳县| 墨竹工卡县| 杭锦后旗| 马关县| 东乡县| 固阳县| 丘北县| 东台市| 姜堰市| 奉贤区| 吉安市| 腾冲县| 苏尼特右旗| 绥滨县| 顺义区| 应城市| 瓮安县| 临沧市| 天水市| 虹口区| 都安| 于田县|