【python】python编码方式

环境:

  python3.6  

需求:

  针对于打开一个文件,可以读取到文本的编码方式,根据默认的文件编码方式来获取文件,就不会出现乱码。  

  针对这种需求,python中有这个方式可以很好的解决:

解决策略:

  chardet是一个非常优秀的编码识别模块。
  chardet 是python的第三方库,需要下载和安装。
 

下载地址:

  官方推荐下载地址: https://pypi.org/project/chardet/
 

安装事项:

  如果采用源代码安装方法,有可能会提示缺少setuptools这个模块。
  因此这里我们采用另外一种更为方便的安装方法,不论你选择哪种安装包,将它解压得到其中的文件夹【chardet】将这个文件夹复制到【python安装根目录\Lib\site-packages】下,确保这个位置可以被python引用到。
  如果不能被引用到请加入环境变量。【这在windows和linux下都是适用的】
 

开始本文:

  因使用pycharm做python的开发工作,所以使用pycharm下载安装是个更高效的选择!!
 

1.使用pycharm安装chardet第三方库。

左上角File->Default Settings->进入Project Interpreter【工程翻译???什么鬼,Project Depend比较贴切吧】

2.查找chardet

注意是chardet不是charset

安装成功

3.开始使用chardet查看文件文本内容的编码方式

代码:【注意,open需要指定打开模式为'b'二进制打开,并且需要'rb'或'wb'或其他组合方式,仅使用'b'模式不够】

import chardet


fileName = 'E:/2/采集数据_pswf12_180大0小35750_20181206.txt'

currentFile = open(fileName,mode='rb')
content = currentFile.read()

print(chardet.detect(content))

查看结果:

编码方式为utf-8的概率为99%

使用chardet判断编码方式后,就可以放心采用本种编码方式去去读取文本内容而不怕报错或乱码

import chardet


fileName = 'E:/2/采集数据_pswf12_180大0小35750_20181206.txt'

# 按照二进制只读模式 打开文件 读取并解析文本内容的编码方式
currentFile = open(fileName,mode='rb')
content = currentFile.read()
print(chardet.detect(content))



# 按照编码方式为  UTF-8读取整个文本内容
currentFile = open(fileName,encoding='utf-8')
content = currentFile.read()
print(content)



# 关闭文件
currentFile.close()

4.按行读取,更快

import chardet


fileName = 'E:/2/采集数据_pswf12_180大0小35750_20181206.txt'

# 按照二进制只读模式 打开文件 仅读取一行  并解析文本内容的编码方式
currentFile = open(fileName,mode='rb')
content = currentFile.readline()
print(chardet.detect(content))



# 按照编码方式为  UTF-8 按行读取  整个文本内容
currentFile = open(fileName,encoding='utf-8')
line = currentFile.readline()

while line:
    print(line)
    line = currentFile.readline()



# 关闭文件
currentFile.close()
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/sxdcgaq8080/p/10318233.html