我需要知道Python中'word'字節的數量。我需要這個的原因是我有我需要從文件中讀取的字數;如果我知道一個字中的字節數,我可以使用file.read(num_bytes)
函數從文件中讀取適當的數量。如何在Python中確定'word'大小
如何確定單詞中的字節數?
我需要知道Python中'word'字節的數量。我需要這個的原因是我有我需要從文件中讀取的字數;如果我知道一個字中的字節數,我可以使用file.read(num_bytes)
函數從文件中讀取適當的數量。如何在Python中確定'word'大小
如何確定單詞中的字節數?
可以使用platform.architecture
功能:
>>> import platform
>>> platform.architecture()
('64bit', '')
講究的說明在同一頁上:
注意在Mac OS X(也許還有其他平臺),可執行文件可能是包含多種體系結構的通用文件。 要獲取當前解釋的「64位數」,這是更可靠的查詢了sys.maxsize屬性:
is_64bits = sys.maxsize > 2**32
請記住,這使字的大小與該蟒蛇口譯員編譯。如果python是在32位模式下編譯的,你可以在64位主機上獲得32的值。
如果該文件是由不同的執行製作,你可以訪問這個可執行文件,您可以使用第一個可選參數的platform.architecture
功能:
>>> p.architecture('/path/to/executable')
('32bit', '')
在Python中沒有「字」的概念,當你從一個文件讀取二進制數據時,你可以明確指出,一次應該讀多少個字節。
就編譯器和/或平臺而言,'WORD'通常決定基本數據單元的大小。 Python是獨立於那種東西:)
對於一個單詞是沒有真正的聲音定義;除了某些archetectures調用一些字節數的字(x86調用每個字節2個字節,PPC每個字節調用4個字節),但除了這個任意值外,沒有多大意義。
也許最簡單的解決方案是推遲到struct
模塊;例如,格式'h'
表示簽名的空格(合理地同意'單詞'的英特爾定義)。所以,你可以這樣做:
>>> import struct
>>> f = file('.vimrc')
>>> struct.unpack('h', f.read(struct.calcsize('h')))
(8226,)
>>>
我需要知道在Python中的「字」的字節數。我 需要這個的原因是我的話我需要從文件
然後,你需要問是誰寫文件的人讀的數量。它與Python無關,並且與實際的文件格式有關。一個文件被定義爲一個單詞序列是很奇怪的。它很可能是一個16位或32位整數的序列,否則它實際上是文本意義上的單詞,在這種情況下,您真的無論在分隔符之間掃描文件的標記。
怎麼是這樣的:
def machine_word_size():
import sys
num_bytes = 0
maxint = sys.maxint
while maxint > 0:
maxint = maxint >> 8
num_bytes += 1
return num_bytes
或許下面可能是相關的和有益的:假設你的32位檢查。看看是否(-1)< < 31回來或不。對於32位,它不會,而(-1)< < 32和1 < 31。
定義'單詞'。你是指記憶單位還是語言概念? –
我沒有指定。我的意思是記憶的單位,我認爲這是在@TokenMacGuy所說的Python中未定義的。 – jlconlin
單詞中的字節數應該由文件格式決定,而不是由Python決定。您應該看看創建該文件的應用程序。 –