文件-读取与编码检测

文件存放在硬盘是以二进制方式存储,读取出来需要对其根据字符编码表进行转换,python3默认以utf-8编码。

utf8三个字节一个字符,gbk两个字节一个字符

文件读取

以utf-8编码打开gbk存储的文件并读取内容

f=open(file=‘test.txt‘,mode=‘r‘,encoding=‘utf-8‘)
data=f.read()
f.close()
print(data)

file:需打开的文件

mode:打开方式

encoding:打开的编码格式

以gbk方式打开即可正常读取

f=open(file=‘test.txt‘,mode=‘r‘,encoding=‘gbk‘)
data=f.read()
f.close()
print(data)

文件编码检测

chardet更具编码规律尝试检测文件编码

import chardet

f=open(‘test.txt‘,mode=‘rb‘)
data=f.read()
f.close()
result=chardet.detect(data)
print(result)

confidence:编码可信度

encoding:可能的编码

根据可能的编码格式进行解码(decode)

import chardet

f=open(‘test.txt‘,mode=‘rb‘)
data=f.read()
f.close()
result=chardet.detect(data)
print(result)
#根据chardet检测出来的编码格式进行解码
print(data.decode(‘gb2312‘))

原文地址:https://www.cnblogs.com/yaya625202/p/8831592.html

时间: 2024-10-06 21:29:25

文件-读取与编码检测的相关文章

关于文件读取时编码问题

/** * 判断文件的编码格式 * @param fileName :file * @return 文件编码格式 * @throws Exception */ public static String codeString(String fileName) throws Exception{ BufferedInputStream bin = new BufferedInputStream( new FileInputStream(fileName)); int p = (bin.read() 

php通过变通方法检测系统的文件夹路径编码

最近在通过php来写一个类似ftp的的web-ftp平台; 需要兼容linux和window的路径访问; 过程中发现window与linux使用的路径编码是不一样的,比如linux好像是utf-8,window却是gbk; php的编码是utf-8,如果路径中有中文,统一使用utf-8编码来访问路径,就会出现像file_exists这类fs方法出现无法访问情况; 因为路径不存在,原因就是utf-8按照gbk的格式来解析路径编码时,肯定是中文变成不的字符了;就出现路径不存在而出错; 这时就需要自动

本地文件读取(csv,txt)时字符编码问题解决

今天进行csv文件读取时,老是入库为空,因为其中有中文字符,我要通过中文字符映射成相应的编号(上升:1011,下降:1012),于是怎么也取不到编号.刚开始以为程序映射出了问题,最后日志打出来后,发现读取的csv文件内容中文全为乱码.啊啊啊,好坑.于是看了下别人写的读取csv文件的代码,果然是没有设置字符编码.通过字符读取文件,转为字节流一定要进行字符编码设置,否则跑到测试环境或生产环境会使用本地默认字符集,那就坑大了. 问题代码: BufferedReader in = new Buffere

boost读取utf-8编码xml文件

参照:http://www.cnblogs.com/qicosmos/p/3555668.html 解决boost读取utf-8 xml文件乱码问题. 代码如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 void io::read(const string& file) {     try     {         wifstream f(file);         locale utf8Locale(locale("chs&quo

文件编码检测.测试代码

ZC:这个是在 G转SVG的C++项目中要用到这个功能的,然后逐步查资料查到 jchardet的,相关的文章为"文件编码检测.ZC一些资料(包含java的) - CppSkill - 博客园.html(https://www.cnblogs.com/cppskill/p/9906599.html)" ZC:相关文件位于:"..\ZC_IDE\Java_3rd\ZC_文件编码自动检测\jchardet-1.1.zip",jar 位于 "...\ZC_IDE\

基础入门_Python-模块和包.运维开发中chartdet编码检测的最佳实践?

简单介绍: 说明: 此模块主要用来实现字符串/文件编码检测 快速安装: pip install --upgrade chardet 常用方法: chardet.detect(aBuf) -> dict 说明: 检测字符串编码,返回一个字典包含confidence编码匹配准确率,encoding最终检测的编码,当aBuf为空时可能encoding为None,所以最好判断一下 最佳实践: 1. FirmwareUpload会自动对接OA系统及对应SVN服务器,自动定期读取最新OA发布的固件程序及Re

H5学习系列之文件读取API--本文转自http://blog.csdn.net/jackfrued/article/details/8967667

HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简单,可以按照如下步骤创建FileReader对象并调用其方法: 1.检测浏览器对FileReader的支持 if(window.FileReader) { var fr = new FileReader(); // add your code here } else { alert("Not sup

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse

[Python爬虫] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题

最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下笔记.方便以后查阅和大家学习. 中文编码问题的处理核心都是--保证所有的编码方式一致即可,包括编译器.数据库.浏览器编码方式等,而Python通常的处理流程是将unicode作为中间转换码进行过渡.先将待处理字符串用unicode函数以正确的编码转换为Unicode码,在程序中统一用Unicode字