电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python如何讀寫字節(jié)數(shù)據(jù)

瀏覽:120日期:2022-07-15 09:15:51

問題

你想讀寫二進(jìn)制文件,比如圖片,聲音文件等等。

解決方案

使用模式為 rb 或 wb 的 open() 函數(shù)來讀取或?qū)懭攵M(jìn)制數(shù)據(jù)。比如:

# Read the entire file as a single byte stringwith open(’somefile.bin’, ’rb’) as f: data = f.read()# Write binary data to a filewith open(’somefile.bin’, ’wb’) as f: f.write(b’Hello World’)

在讀取二進(jìn)制數(shù)據(jù)時(shí),需要指明的是所有返回的數(shù)據(jù)都是字節(jié)字符串格式的,而不是文本字符串。 類似的,在寫入的時(shí)候,必須保證參數(shù)是以字節(jié)形式對(duì)外暴露數(shù)據(jù)的對(duì)象(比如字節(jié)字符串,字節(jié)數(shù)組對(duì)象等)。

討論

在讀取二進(jìn)制數(shù)據(jù)的時(shí)候,字節(jié)字符串和文本字符串的語義差異可能會(huì)導(dǎo)致一個(gè)潛在的陷阱。 特別需要注意的是,索引和迭代動(dòng)作返回的是字節(jié)的值而不是字節(jié)字符串。比如:

>>> # Text string>>> t = ’Hello World’>>> t[0]’H’>>> for c in t:... print(c)...Hello...>>> # Byte string>>> b = b’Hello World’>>> b[0]72>>> for c in b:... print(c)...72101108108111...>>>

如果你想從二進(jìn)制模式的文件中讀取或?qū)懭胛谋緮?shù)據(jù),必須確保要進(jìn)行解碼和編碼操作。比如:

with open(’somefile.bin’, ’rb’) as f: data = f.read(16) text = data.decode(’utf-8’)with open(’somefile.bin’, ’wb’) as f: text = ’Hello World’ f.write(text.encode(’utf-8’))

二進(jìn)制I/O還有一個(gè)鮮為人知的特性就是數(shù)組和C結(jié)構(gòu)體類型能直接被寫入,而不需要中間轉(zhuǎn)換為自己對(duì)象。比如:

import arraynums = array.array(’i’, [1, 2, 3, 4])with open(’data.bin’,’wb’) as f: f.write(nums)

這個(gè)適用于任何實(shí)現(xiàn)了被稱之為”緩沖接口”的對(duì)象,這種對(duì)象會(huì)直接暴露其底層的內(nèi)存緩沖區(qū)給能處理它的操作。 二進(jìn)制數(shù)據(jù)的寫入就是這類操作之一。

很多對(duì)象還允許通過使用文件對(duì)象的 readinto() 方法直接讀取二進(jìn)制數(shù)據(jù)到其底層的內(nèi)存中去。比如:

>>> import array>>> a = array.array(’i’, [0, 0, 0, 0, 0, 0, 0, 0])>>> with open(’data.bin’, ’rb’) as f:... f.readinto(a)...16>>> aarray(’i’, [1, 2, 3, 4, 0, 0, 0, 0])>>>

但是使用這種技術(shù)的時(shí)候需要格外小心,因?yàn)樗ǔ>哂衅脚_(tái)相關(guān)性,并且可能會(huì)依賴字長(zhǎng)和字節(jié)順序(高位優(yōu)先和低位優(yōu)先)。

以上就是Python如何讀寫字節(jié)數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于Python讀寫字節(jié)數(shù)據(jù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 模型公司_模型制作_沙盘模型报价-中国模型网 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | POS机官网 - 拉卡拉POS机免费办理|官网在线申请入口 | 碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 武汉森源蓝天环境科技工程有限公司-为环境污染治理提供协同解决方案 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 传动滚筒,改向滚筒-淄博建凯机械科技有限公司 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 拉伸膜,PE缠绕膜,打包带,封箱胶带,包装膜厂家-东莞宏展包装 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 广州云仓代发-昊哥云仓专业电商仓储托管外包代发货服务 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 定坤静电科技静电消除器厂家-除静电设备 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 制冷采购电子商务平台——制冷大市场 | 公交驾校-北京公交驾校欢迎您! 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产 - 中工招商网 | 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 | 达利园物流科技集团-| 共享雨伞_共享童车_共享轮椅_共享陪护床-共享产品的领先者_有伞科技 | 路面机械厂家 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 |