Reading and writing text data
When reading a text file, we already know we should open it in text mode, which is the default Python mode. In this mode, Python will try to decode the content of the file according to what locale.getpreferredencoding returns as being the preferred encoding for our system.
Sadly, the fact that any type of encoding is the preferred encoding for our system has nothing to do with what encoding might have been used to save the contents of the file. As it might be a file that someone else wrote, or even if we write it ourselves, the editor might have saved it in any encoding.
So the only solution is to specify the encoding that should be used to decode the file.
How to do it...
The open function that Python provides accepts an encoding argument that can be used to properly encode/decode the contents of a file:
# Write a file with latin-1 encoding
with open('/tmp/somefile.txt', mode='w', encoding='latin-1') as f:
f.write('This is some latin1 text: "è già ora"')
#...