So what I am basically trying to do is to read and print each individual line of an RTF file. However, my problem is that with this code that I currently have it seems to do the job up until it reaches line 937. At that point it stops reading lines and gives me this error:
Traceback (most recent call last):
File "/private/var/mobile/Library/Mobile Documents/iCloud~com~omz-software~Pythonista3/Documents/openFolders.py", line 8, in <module>
for element in file:
File "/var/containers/Bundle/Application/8F2965B6-AC1F-46FA-8104-6BB24F1ECB97/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/encodings/ascii.py", line 27, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 4250: ordinal not in range(128)
file = open("Steno Dictionary.rtf", "r")
#line_number is just to know what line number has been printed on the console.
line_number = 1
for element in file:
#print(line_number) prints until it reaches 937 and then the error occurs.
print(line_number)
print(element)
line_number +=1
How would I modify my current code to make it keep on reading lines until the end of the file? As there are still many more lines left. I have searched high and low and cannot seem to figure it out! Thank you very much to whoever can help me out! As a note: I’m using Pythonista on iOS.
The error you are getting means that Python doesn't understand how to translate a specific character in the document using the default text encoding.
There are a few things you can try, the first is to check if explicitly setting the encoding to utf8 works.
if that doesn't work you can try to use other encodings or you can tell python to replace the bits it doesn't recognize with something else. like this
That will decode everything it knows how to, and replace what it doesn't with
?characters.