我正在寫一個python腳本,它查看常見的計算機文件並檢查它們是否有類似的字節,單詞,雙字。雖然我需要/希望以十六進制格式查看文件,但ande實際上並不能讓python在python中打開一個簡單的文件。我曾嘗試用十六進制作爲編碼codecs.open,但是當我文件描述符操作它總是吐回Python:查看Hex中的所有文件
File "main.py", line 41, in <module>
main()
File "main.py", line 38, in main
process_file(sys.argv[1])
File "main.py", line 27, in process_file
seeker(line.rstrip("\n"))
File "main.py", line 15, in seeker
for unit in f.read(2):
File "/usr/lib/python2.6/codecs.py", line 666, in read
return self.reader.read(size)
File "/usr/lib/python2.6/codecs.py", line 472, in read
newchars, decodedbytes = self.decode(data, self.errors)
File "/usr/lib/python2.6/encodings/hex_codec.py", line 50, in decode
return hex_decode(input,errors)
File "/usr/lib/python2.6/encodings/hex_codec.py", line 42, in hex_decode
output = binascii.a2b_hex(input)
TypeError: Non-hexadecimal digit found
def seeker(_file):
f = codecs.open(_file, "rb", "hex")
for LINE in f.read():
print LINE
f.close()
我真的只是想看看文件,對它們進行操作,就好像它是一個十六進制像xxd這樣的編輯器。也有可能一次讀取一個文件可能是一個單詞的增量。
不,這不是功課。
是否有一個原因,他們絕對必須在「十六進制」?畢竟,在十六進制編輯器中看到的十六進制格式實際上只是數據的可視化表示,實際上它是二進制的......字節/字/雙字是二進制值,十六進制只是人類可視化它們的一種更簡單的方法。 – Amber 2010-05-24 00:58:23
以及二進制也會很好,但十六進制是更小和通用的好用。 – Recursion 2010-05-24 01:04:47