/ / Ako správne dekódujem obrazový / pdf súbor v python3 - python, unicode

Ako môžem dekódovať súbor obrázka / pdf správne v python3 - python, unicode

Súbor posielam nasledujúcim spôsobom.

with open(file,"rb") as f:
rh=f.read()

Teraz ho pošlem, ktorý používam

sock.sendto(rh, (ip,port))

Počas prijímania sa snažím toto dekódovať nasledujúcim spôsobom.

dat = sock.recvfrom()
data=dat.decode("ascii")

Potom to zapisujem do súboru. V prípade textového súboru to funguje úplne dobre. Ak však odosielam a prijímam súbor s obrázkom / pdf, zobrazí sa táto chyba.

File "code.py", line 16, in <module>
data=dat.decode("ascii")
UnicodeDecodeError: "ascii" codec can"t decode byte 0x89 in position 41: ordinal not in range(128)

Nedokážem tu zistiť, v čom je problém. Použil som tiež dat.decode („utf-8“), ale k ničomu

odpovede:

1 pre odpoveď č. 1

Skúste súbor otvoriť pomocou codecs.

import codecs

f = codecs.open(filepath, encoding="ISO8859-1")

Pracoval som pri nahrávaní súboru PDF pomocou rozhrania API.


1 pre odpoveď č. 2

Nie je potrebné dekódovať. Čítali ste a odosielali súbor v binárnom režime, takže napíšte prijatý súbor v binárnom režime. encode/decode je určený na preklad textu Unicode do az binárnej reprezentácie.

with open(output_filename,"wb") as f:
f.write(data)