codecs.decode не может декодировать строку в кодировке uu, когда в конце отсутствует символ новой строки - PullRequest
0 голосов
/ 26 июня 2019

В длинном скрипте у меня есть эти строки

document.contents = codecs.decode(document.contents.encode("ascii"), "uu")

, где document.contents - это str. Эта строка выдает следующую ошибку:

Traceback (most recent call last):
  File "/usr/lib/python3.7/encodings/uu_codec.py", line 54, in uu_decode
    data = binascii.a2b_uu(s)
binascii.Error: Illegal char

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.7/encodings/uu_codec.py", line 58, in uu_decode
    data = binascii.a2b_uu(s[:nbytes])
binascii.Error: Illegal char

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "3_extract_embedded.py", line 28, in <module>
    myfile = filings_extractor.extract(txt_file).save(extracted_dir)
  File "/media/raffaele/DATA/data/progetti_miei/edgardown/FilingsExtractor.py", line 180, in extract
    document.contents = codecs.decode(document.contents.encode("ascii"), "uu")
binascii.Error: decoding with 'uu' codec failed (Error: Illegal char)

Проблема в том, что я не получаю сообщение об ошибке, если пытаюсь сохранить его в файл

with open("to_decode.uu", "wb") as fileh:
    fileh.write(document.contents.encode("ascii"))
uu.decode("to_decode.uu", "to_decode.jpeg")

и я не могу произвести MWE, поскольку MWE с точной строкой работает без проблем:

instr = r"""begin 644 logo.jpg
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
*0@I""D(*0C__V3\_
`
end
"""

import uu
import codecs

with open("to_decode.uu", "w", encoding="ascii") as fileh:
    fileh.write(instr)

uu.decode("to_decode.uu", "decoded.jpeg")

# Use codecs package
outstr = codecs.decode(instr.encode("ascii"), "uu")

with open("decoded2.jpeg", "wb") as fileh:
    fileh.write(outstr)
...