Я пишу скрипт на python, который просматривает общие компьютерные файлы и проверяет их на наличие похожих байтов, слов, двойных слов. Хотя мне нужно / я хочу видеть файлы в шестнадцатеричном формате, я не могу заставить Python открыть простой файл в Python. Я пробовал codecs.open с шестнадцатеричной кодировкой в качестве кодировки, но когда я оперирую дескриптором файла, он всегда выплевывает
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. Также возможно читать файл с шагом, может быть, слово за раз.
Нет, это не домашняя работа.