我試圖製作一個文本文件,其中包含所有54607個可打印字符,但每行只能包含80個字符以提高可讀性。如何在二進制模式下將換行符寫入文本文件
utf_all = ' !"#$'...'
lines = '\n'.join(utf_all[i:i+80] for i in range(0, 54607, 80))
file = open('allchars.txt', 'w').write(lines)
即返回錯誤消息
UnicodeEncodeError: 'charmap' codec can't encode characters in position 193-243: character maps to
<undefined>
如果我嘗試編碼字符和二進制模式寫入它忽略了換行\ n和使整個字符串成一行並附加一個新行到文件結尾。
爲什麼要以二進制模式打開文本文件?爲什麼在打開文件時不指定編碼?你爲什麼會認爲只有54607個可打印的字符? –
默認寫入模式是文本。使用'open('filename','wb')'以二進制模式寫入。 –
我看不到你的換行失敗。 – usr2564301