设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 9003|回复: 2
打印 上一主题 下一主题

新人求助,文件读取写入报错“非法多字节序列”

[复制链接]

1

主题

0

好友

36

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2016-10-4 18:40:50 |只看该作者 |倒序浏览
环境:win10 python34
代码:
  1. #!/usr/bin/python

  2. f_old = open("束星北档案.txt")
  3. f_new = open("束星北档案已转换.txt")
  4. x = f_old.readlines()
  5. type(x)
  6. for i in x:
  7.         if (len(x)<30) or ("。\n" in x) or ("!\n" in x) or ("?\n" in x) or ("……\n" in x) or ("-\n" in x)
  8.                 f_new.write(x)
  9.         else
  10.                 f_new.write(x.replace("\n",""))
  11. f_old.close()
  12. f_new.close()
  13. print("转换已完成")
复制代码
代码做用是删除 ".txt" 里面多余的换行符,因为要下载到kindle上面看,里面控制排版的换行符多余,所以写了上面这些代码
{
    一九七二年十月十七日,是我一九四六年去美国后第一次回国,国家领导人在

人民大会堂会见了我。周恩来总理希望我能为解决教育人才“断层”的问题做些工作,

如介绍一些海外有才学的人到中国来讲学等等。我谈了自己的一些看法,我说中国

不乏解决“断层”问题的人才和教师,只是他们没有得到使用。比如我的老师束星北

先生。

    那时我不知道束星北老师在哪里,在做什么,我很想能见他一面,可是最终未

能如愿。

    一个人的成功有着各种各样的因素,而这些因素又彼此关联。对于我一生的物

理学研究来说,束先生对我最初的帮助和影响是非常重要的。
}
回复

使用道具 举报

1

主题

0

好友

36

积分

新手上路

Rank: 1

沙发
发表于 2016-10-4 18:47:09 |只看该作者
下面这些是报错信息:
{
Traceback (most recent call last):
  File "G:\aaa\zh.py", line 5, in <module>
    x = f_old.readlines()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
}
表示英语学的太差,就去百度翻译了一下
{
Traceback(最后调用):
文件“G:\ AAA \ ZH .py”,5号线,在<模块>
x = f_old。readlines()
unicodedecodeerror:“GBK的编码不能在2位字节0xbf解码:非法多字节序列
}

虽然我还是不能看懂,,,
希望能得到大家的帮助,或者更好的方法建议
新人求助,不胜感激
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2016-10-5 19:36:13 |只看该作者
文件里有字符是gbk编码没法处理的。你搜下python3如何指定打开文件的编码,改成utf8试试
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-7 08:06 , Processed in 0.015378 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部