我的輸入文件可以是任意的塊,所以我會用在Python中,讀取文件十進制數
f = open("in-file", 'rb')
塊大小約爲4K字節,所以我會用
f.read(4096)
我想要做的是從文件中按塊讀取塊。另外,由於chunk實際上是一個$ 2^15 $ -bit(4KB)的序列,因此在讀取塊時,我需要將它轉換爲十進制值以供進一步計算。例如,如果第一個塊的形式爲0000 ... 10,我想要的是讓另一個變量保留相應的十進制值,例如,x = 2。
From Convert string to list of bits and viceversa我知道它的代碼可以幫助我通過塊讀取塊。
def tobits(s):
result = []
for c in s:
bits = bin(ord(c))[2:]
bits = '00000000'[len(bits):] + bits
result.extend([int(b) for b in bits])
return result
但是,我不知道如何將輸出列表轉換爲十進制值。有人可以給我一些示例代碼嗎?謝謝。
你的問題有點不清楚:是「塊」一串你想要的數值的字節?或者它是文本,即使用字符'1'和'0'編寫的基數爲2的數字? – millimoose
(理解程序存儲器中通常不存在「十進制」數字,這全是某種二進制表示形式)。 – millimoose
是的,塊是文件的一系列位。例如,如果塊大小設置爲2,並且文件恰好爲10010100,則該文件有4個塊,分別爲00,01,01,10。 – user4478