2013-01-24 129 views
3

我想創建一堆包含相應的十六進制二進制文件值用Python寫的十六進制文件

for i in range(2**8): 
    file = open("test" + str(i) + ".bin", "wb") 
    file.write(hex(i)) 
    file.close() 

遺憾的是,似乎轉換爲十六進制我的計數器的文本表示被寫入文件而不是實際的十六進制值。有人可以糾正這個代碼嗎?我敢肯定,問題是hex(i)

+2

嗯,是的.. 'hex(x)'docs具體說它返回一個字符串。 http://docs.python.org/3/library/functions.html#hex但十六進制是一種表示形式:是否要編寫該十六進制字符串的二進制表示形式?或者'i'​​的二進制表示? –

+0

我想你想寫我的二進制值,而不是我的文字值文件? – Marcus

+2

你會想使用['struct.pack'](http://docs.python.org/2/library/struct.html) – jozzas

回答

4

如果你想以二進制形式寫入的值,使用CHR()創建角色:

for i in range(2**8): 
    with open("test" + str(i) + ".bin", "wb") as f: 
     f.write(chr(i))