python3.5 读取文本文件出现乱码

1.读取文本文件出现乱码

1.1 python2.7

首先,在Python2.7的里面只要设置和编码,读取文本是没有问题的:

# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

一般我们用Python2.7,保证输出中文,以上就已经搞定啦。
例子:

# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import codecs

def testshData():
    print('测试社会文本数据开始')
    f_read = open(
        r'D:tetsData\shData.txt', 'r'
        )
    news_zhengwen = f_read.readlines()
    f = codecs.open(
        r'D:resultData\result.txt',
        'w', encoding='utf-8')

    for line in news_zhengwen:
        m = line.strip().split('\001')  # 去除头尾空格,以\001进行切开
        print(m[1])

testshData()

1.2 python3.5

以前可以说仿照Python2的方法来设置编码问题,

from imp import reload reload(MyModule)  

import importlib,sys
importlib.reload(sys)
sys.setdefaultencoding("utf-8")

这些东西全部是错的,现在python3已经更新换代,删除啦这些没必要的东西,这些已成为过去啦。
python3 默认的编码为unicode
py 文件开头也没必要设置:# -*- coding:utf-8 -*-
只需要在读取文章的时候,设置一个:`encoding=‘utf-8’, errors=“ignore”
成功读取。。。。。
例如:

# -*- coding:utf-8 -*-
import codecs


def testshData():
    print('测试社会文本数据开始')
    f_read = codecs.open(
        r'D:tetsData\shData.txt', 'r'
        , encoding='utf-8', errors="ignore")
    news_zhengwen = f_read.readlines()
    f = codecs.open(
        r'D:resultData\result_shData.txt',
        'w', encoding='utf-8')
    i= 0
    for line in news_zhengwen:
        i +=1
        m = line.strip().split('\001')  # 去除头尾空格,以\001进行切开
        print(m[1])
        f.write(''.join(m[1])+'\n')
    print(i)

testshData()


参考链接(虽然都过时啦,没什么用):
reload
lib

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值