[python]读取utf-8中文文件的问题

hitcser01 2013-11-01 03:01:20
linux环境,utf-8编码存储。
文件内容主体为中文,夹杂少量英文。

假设现在文件里面有这3个字:
大好人

现在需要
1.每次读取2个汉字// 可能变成每次读取3个/4个等等
2.每次步进1个汉字

这样,读取上述文件的结果应该是:
大好
好人

我的问题是:如何做到 每次读取2个汉字&&每次步进1个汉字呢?
我尝试用utf-8来处理时,发现文本中夹杂的换行会对程序造成较大的干扰。。。

因为不熟悉Python,感觉是我的方向错了。前来问问各位前辈,该怎么处理呢?

谢谢。
...全文
460 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄哥Python培训 2013-11-13
  • 打赏
  • 举报
回复
是python2 还是python3?
Bird_1989 2013-11-13
  • 打赏
  • 举报
回复
mark 虽然没懂,但是觉得好像挺好的
hitcser01 2013-11-01
  • 打赏
  • 举报
回复
引用 2 楼 angel_su 的回复:
转成定长的uincode string,用下标遍历字串,发现当前和下一个字都符合所谓汉字,就提取出来...
嗯嗯,非常感谢。刚才尝试了下您提供的方法,发现把整个文件一次性读入转化成1个巨型字符串再下标处理效率很好。 :D
hitcser01 2013-11-01
  • 打赏
  • 举报
回复
引用 2 楼 angel_su 的回复:
转成定长的uincode string,用下标遍历字串,发现当前和下一个字都符合所谓汉字,就提取出来...
谢谢,我还有2个疑问, 1 是,这里要处理大量数据,千万字级,化成字符串会不会有太大的消耗?我这里就一台普通笔记本。==! 2.之前也查过资料,了解汉字在utf-8中的编码长度不定长。可是不知道怎么化成定长,大致查看了下str的帮助,好像没有。能提示下吗?
hitcser01 2013-11-01
  • 打赏
  • 举报
回复
引用 1 楼 snmr_com 的回复:
先说一句,py2.x和py3.x处理可能很不同 不明白你说的每次是什么概念,要是我的话就直接读三个汉字,切片提取前两个和后两个,没必要计算步进 而且也不知你对不足三个汉字是用什么规则,例如 中文a汉字b 结果如何?
谢谢回复。 这里要处理的是“大量数据”,至少千万字级(这是要求,不是我确定的)。数据来源是网上下载的各种小说,所以会有英文等情况。 1楼说3个字的文件仅仅是举个例子。一个英文字符、一个汉字、一个标点都可以算作1个字,能过滤英文、标点最好,不过滤也行。
angel_su 2013-11-01
  • 打赏
  • 举报
回复
转成定长的uincode string,用下标遍历字串,发现当前和下一个字都符合所谓汉字,就提取出来...
ImN1 2013-11-01
  • 打赏
  • 举报
回复
先说一句,py2.x和py3.x处理可能很不同 不明白你说的每次是什么概念,要是我的话就直接读三个汉字,切片提取前两个和后两个,没必要计算步进 而且也不知你对不足三个汉字是用什么规则,例如 中文a汉字b 结果如何?

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧