python3 处理 gbk 编码文件的问题

2019-06-05 17:29:23 +08:00
 ekoeko

各位大佬好,请教一个问题,我有一个源文件是 gbk 编码的,现在要修改其中的内容。内容是有规范的,比如第一位到第三位是序号。但是这个站位是按照字节来算,比如中文字符算 2 位,英文字符算 1 位,我把文件内容当成字符串读到文件之后,这个字符站位默认都是一位,所以我无法按照规范定位到应该修改的位置。

想了半天查了很多资料,好像相关问题的资料很少,求各位大佬帮帮忙。

2453 次点击
所在节点    Python
4 条回复
vinceguo
2019-06-05 17:37:59 +08:00
读取文件的时候指定编码,试试
fp = open('xxx.txt', encoding='gb18030')
ysc3839
2019-06-05 17:40:48 +08:00
你需要计算的时候把 string encode 成 gbk bytes 再算长度就行了。
ekoeko
2019-06-05 19:39:39 +08:00
@ysc3839 感谢大佬,已经成功
ps1aniuge
2019-06-06 12:54:48 +08:00
用 powershell 没有这样的问题,或者说可以避过。

中英文长度都是 1 字符,不按字节统计。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX