python - 使用开放参数编码与编码字符串方法字节大小
问题描述
我遇到了一些我无法理解的事情。
所以我尝试使用字符串编码方法和开放编码参数用一个 unicode 字符对我的字符串进行编码。由于某种原因,这两种方法之间的写入字节大小存在差异。
这是示例代码:
with open("in.txt", "wb") as f:
no = f.write("Wlazł".encode("utf-8"))
print(no) # -> 6
with open("in.txt", "w", encoding="utf-8") as f:
no = f.write("Wlazł")
print(no) # -> 5
有谁知道为什么会这样?
解决方案
当您以二进制模式打开文件时,您将获得一个io.RawIOBase实例,并且RawIOBase.write返回写入的字节数。
当您以文本模式打开文件时,您将获得一个io.TextIOBase实例,并且TextIOBase.write返回写入的字符数。
所以差异的原因是一个是字节数,另一个是字符数。
推荐阅读
- html - Bootstrap中两行下方的巨大空间
- javascript - 将 div[overflow: hidden] 中的矩形强制移到右侧
- firebase - 如何避免竞争条件?
- makefile - 测试 python3 是否安装在 Makefile 中
- typescript - 如何为原型中定义的方法实现类的接口?
- c# - 如何在 DropDownListFor 中设置值?
- java - 八进制到十进制帮助使用异常
- c# - 此请求的授权已被拒绝:JWT Bearer
- rust - 如何将 take_while 与 futures::Stream 一起使用?
- java - 在java中如何访问作为对@GETMapping API的Rest响应返回的对象数组中的列表(电子邮件的ArrayList)