我正在尝试制作一个包含所有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'编解码器无法对位置193-243中的字符进行编码:字符映射到
<undefined>
如果我尝试对字符进行编码并以二进制模式写入,则忽略换行符\ n并将整个字符串放入一行,并在文件末尾附加换行符。
答案 0 :(得分:-1)
你的代码在python3.5中对我来说很好用。但是,您将文件作为文本文件打开,这不是您想要的?
如果我用
替换它open('allchars.txt', 'wb').write(lines)
然后我必须将encode('utf-8')
添加到lines
:
file = open('allchars.txt', 'wb').write(lines.encode('utf-8'))
编辑: 我的代码:
utf_all = ''.join([chr(i) for i in range(2**16)])
lines = '\n'.join(utf_all[i:i+80] for i in range(0, 54607, 80))
file = open('allchars.txt', 'wb').write(lines.encode('utf-8'))
我的文本编辑器会在80个字符(gedit
)