新聞中心
chunk —- 讀取 IFF 分塊數(shù)據(jù)
源代碼: Lib/chunk.py

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)中山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
從版本 3.11 開始標(biāo)記為過時(shí),將在版本 3.13 中移除。: chunk 模塊已被棄用(請(qǐng)參閱 PEP 594 了解詳情)。
本模塊提供了一個(gè)讀取使用 EA IFF 85 分塊的數(shù)據(jù)的接口chunks. 1 這種格式使用的場(chǎng)合有 Audio Interchange File Format (AIFF/AIFF-C) 和 Real Media File Format (RMFF) 等。 與它們密切相關(guān)的 WAVE 音頻文件也可使用此模塊來讀取。
一個(gè)分塊具有以下結(jié)構(gòu):
|
偏移 |
長度 |
目錄 |
|---|---|---|
ID是一個(gè)4字節(jié)的字符串,用于標(biāo)識(shí)塊的類型。
大小字段(32 位的值,使用大端字節(jié)序編碼)給出分塊數(shù)據(jù)的大小,不包括 8 字節(jié)的標(biāo)頭。
使用由一個(gè)或更多分塊組成的 IFF 類型文件。 此處定義的 Chunk 類的建議使用方式是在每個(gè)分塊開始時(shí)實(shí)例化一個(gè)實(shí)例并從實(shí)例讀取直到其末尾,在那之后可以再實(shí)例化新的實(shí)例。 到達(dá)文件末尾時(shí),創(chuàng)建新實(shí)例將會(huì)失敗并引發(fā) EOFError 異常。
class chunk.Chunk(file, align=True, bigendian=True, inclheader=False)
代表一個(gè)分塊的類。 file 參數(shù)預(yù)期為一個(gè)文件類對(duì)象。 特別地也允許該類的實(shí)例。 唯一必需的方法是 read()。 如果存在 seek() 和 tell() 方法并且沒有引發(fā)異常,它們也會(huì)被使用。 如果存在這些方法并且引發(fā)了異常,則它們不應(yīng)改變目標(biāo)對(duì)象。 如果可選參數(shù) align 為真值,則分塊應(yīng)當(dāng)以 2 字節(jié)邊界對(duì)齊。 如果 align 為假值,則不使用對(duì)齊。 此參數(shù)默認(rèn)為真值。 如果可選參數(shù) bigendian 為假值,分塊大小應(yīng)當(dāng)為小端序。 這對(duì)于 WAVE 音頻文件是必須的。 此參數(shù)默認(rèn)為真值。 如果可選參數(shù) inclheader 為真值,則分塊標(biāo)頭中給出的大小將包括標(biāo)頭的大小。 此參數(shù)默認(rèn)為假值。
Chunk 對(duì)象支持下列方法:
getname()
返回分塊的名稱(ID)。 這是分塊的頭 4 個(gè)字節(jié)。
getsize()
返回分塊的大小。
close()
關(guān)閉并跳轉(zhuǎn)到分塊的末尾。 這不會(huì)關(guān)閉下層的文件。
在 close() 方法已被調(diào)用后其余方法將會(huì)引發(fā) OSError。 在 python 3.3 之前,它們?cè)鴷?huì)引發(fā) IOError,現(xiàn)在這是 OSError 的一個(gè)別名。
isatty()
返回
False。seek(pos, whence=0)
設(shè)置分塊的當(dāng)前位置。 whence 參數(shù)為可選項(xiàng)并且默認(rèn)為
0(絕對(duì)文件定位);其他值還有1(相對(duì)當(dāng)前位置查找) 和2(相對(duì)文件末尾查找)。 沒有返回值。 如果下層文件不支持查找,則只允許向前查找。tell()
將當(dāng)前位置返回到分塊。
read(size=- 1)
從分塊讀取至多 size 個(gè)字節(jié)(如果在獲得 size 個(gè)字節(jié)之前已到達(dá)分塊末尾則讀取的字節(jié)會(huì)少于此數(shù)量)。 如果 size 參數(shù)為負(fù)值或被省略,則讀取所有字節(jié)直到分塊末尾。 當(dāng)立即遇到分塊末尾則返回空字節(jié)串對(duì)象。
skip()
跳到分塊末尾。此后對(duì)分塊再次調(diào)用 read() 將返回
b''。 如果你對(duì)分塊的內(nèi)容不感興趣,則應(yīng)當(dāng)調(diào)用此方法以使文件指向下一分塊的開頭。
備注
1
“EA IFF 85” 交換格式文件標(biāo)準(zhǔn), Jerry Morrison, Electronic Arts, 1985 年 1 月。
當(dāng)前文章:創(chuàng)新互聯(lián)Python教程:chunk —- 讀取 IFF 分塊數(shù)據(jù)
網(wǎng)站地址:http://www.dlmjj.cn/article/dpdhcdo.html


咨詢
建站咨詢
