Unicode (UTF-8) lezen en schrijven naar bestanden in Python

| | |

Ik heb een hersenprobleem bij het begrijpen van het lezen en schrijven van tekst naar een bestand (Python 2.4).

# De tekenreeks met een a-acute erin. ss = u "Capitxe1n" ss8 = ss.encode("utf8") repr(ss), repr(ss8) 

("u"Capitxe1n"", ""Capitxc3xa1n"")

print ss, ss8 print >> open("f1","w"), ss8 >>> file("f1").read( ) "Capitxc3xa1n " 

Dus typ ik Capitxc3xa1n in mijn favoriete editor, in bestand f2.

Vervolgens:

>>> open("f1").read() "Capitxc3xa1n " >>> open("f2").read() "Capitxc3xa1n " >> ;> open("f1").read().decode("utf8") u"Capitxe1n " >>> open("f2").read().decode("utf8") u"Capit xc3xa1n " 

Wat begrijp ik hier niet? Het is duidelijk dat er een essentieel stukje magie (of gezond verstand) is dat ik mis. Wat typt men in tekstbestanden om de juiste conversies te krijgen?

Wat ik hier echt faal, is wat het punt is van de UTF-8-representatie, als je Python er niet echt toe kunt krijgen om herken het, als het van buiten komt. Misschien moet ik gewoon JSON de string dumpen en die in plaats daarvan gebruiken, omdat dat een aanvaardbare representatie heeft! Meer ter zake, is er een ASCII-representatie van dit Unicode-object dat Python zal herkennen en decoderen wanneer het uit een bestand komt? Zo ja, hoe krijg ik die dan?

>>> print simplejson.dumps(ss) ""Capitu00e1n"" >>> afdrukken >> file("f3","w"), simplejson.dumps(ss) >>> simplejson.load(open("f3")) u"Capitxe1n" 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method