2016-12-09 11 views
0

У меня есть файл, закодированный в шестнадцатеричном формате, и я пытаюсь декодировать файл, однако я продолжаю получать ошибку типа. Я использовал только python в течение нескольких недель, поэтому, если это похоже на основной вопрос, я приношу свои извинения.TypeError: Не шестнадцатеричная цифра, найденная при попытке конвертировать из шестнадцатеричной строки в строку

содержимое файла выглядит следующим образом:

4647525137454353554e54544b5831375a42524d345742473246563639554e4a36495a3359304f35394843554637564d4d464f32354143574f495a4f4a4a565849373259544f46335a4358494b424e335047545a51534b47465259475956584d44594f473536494553373653455932574b33574431435a314d35545957594d4e57434444344948324d375858544f4c564f31444a45304947394c32375a584f4845535a534f43353859594c55594e4239363759393738313557475859345a474448434e4f5a5744544d696c6c656e69756d323030303a3035303233626566343737386639343461626439346334653364623062326166

вот код, который я побежал:

"received_files/documents/cache/OCAGS0WFYO57JVFGUI4Z437.txt".decode("hex") 

Это то, что я вернулся:

Traceback (most recent call last): 
    File "converter.py", line 1, in <module> 
    "received_files/documents/cache/OCAGS0WFYO57JVFGUI4Z437.txt".decode("hex") 
    File "/usr/lib/python2.7/encodings/hex_codec.py", line 42, in hex_decode 
    output = binascii.a2b_hex(input) 
TypeError: Non-hexadecimal digit found 
+1

Вы дважды проверили, чтобы убедиться, что все символы 0-9 и A-F? Я не вижу никаких недопустимых символов, но должен быть один. – Carcigenicate

+0

Невозможно воспроизвести '' '' received_files/documents/cache/OCAGS0WFYO57JVFGUI4Z437.txt ".decode (" hex ")' '' производит '' 'AttributeError: объект 'str' не имеет атрибута 'decode'''' – wwii

ответ

2

Вы» re, давая ему имя файла, а не содержимое этого файла:

"received_files/documents/cache/OCAGS0WFYO57JVFGUI4Z437.txt".decode("hex") 

Попробуйте это:

open("received_files/documents/cache/OCAGS0WFYO57JVFGUI4Z437.txt").read().decode("hex") 
+0

Какой тип '' 'open (файл) .read()' '' return? – wwii

+0

@wwii возвращает строку, содержащую содержимое файла. – Will

+0

'' 'str''' не имеет метода' '' decode'''. '' ''ff'.decode (" hex ") -> AttributeError'''. Даже если он вернул объект '' 'bytes''',« hex »не является стандартной кодировкой -' '' b'ff'.decode («hex») -> LookupError''' – wwii