≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > Python

Python将utf-8格式文件转换成gbk格式的简单示例

人气:763 时间:2018-09-30

这篇文章主要为大家详细介绍了Python将utf-8格式文件转换成gbk格式的简单示例,具有一定的参考价值,可以用来参考一下。

对python这个高级语言感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

需求:将utf-8格式的文件转换成gbk格式的文件

实现代码如下:


# @param Python:将utf-8格式的文件转换成gbk格式的文件
# @author 四海网|q1010.com 

def ReadFile(filePath,encoding="utf-8"):
    with codecs.open(filePath,"r",encoding) as f:
        return f.read()
 
def WriteFile(filePath,u,encoding="gbk"):
    with codecs.open(filePath,"w",encoding) as f:
        f.write(u)
 
def UTF8_2_GBK(src,dst):
    content = ReadFile(src,encoding="utf-8")
    WriteFile(dst,content,encoding="gbk")

# End www_512pic_com

代码讲解:

函数ReadFile的第二个参数指定以utf-8格式的编码方式读取文件,返回的结果content为Unicode

然后,在将Unicode以gbk格式写入文件中。

这样就能实现需求。

但是,如果要转换格式的文件中包含有一些字符并不包含在gbk字符集中的话,就会报错,类似如下:


UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position 4813: illegal multibyte sequence

# End www_512pic_com

以上的报错信息的意思是:在将Unicode编码成gbk的时候,不能将Unicode u'\xa0'编码成gbk。

这里,我们需要弄清楚gb2312、gbk和gb18030三者之间的关系

GB2312:6763个汉字

GBK:21003个汉字

GB18030-2000:27533个汉字

GB18030-2005:70244个汉字

所以,GBK是GB2312的超集,GB18030是GBK的超集。

理清了关系之后,我们进一步改进下代码:


# @param Python:将utf-8格式的文件转换成gbk格式的文件
# @author 四海网|q1010.com 

def UTF8_2_GBK(src,dst):
    content = ReadFile(src,encoding="utf-8")
    WriteFile(dst,content,encoding="gb18030")

# End www_512pic_com

运行后,发现没有报错,可以正常运行。

因为,在GB18030字符集中,可以找到u'\xa0'对应的字符。

此外,还有另外一种实现方案:

需要修改下WriteFile方法


# @param Python:将utf-8格式的文件转换成gbk格式的文件
# @author 四海网|q1010.com 

def WriteFile(filePath,u,encoding="gbk"):
    with codecs.open(filePath,"w") as f:
        f.write(u.encode(encoding,errors="ignore"))

# End www_512pic_com

这里,我们将Unicode编码(encode)成gbk格式,但是注意encode函数的第二个参数,我们赋值"ignore",表示在编码的时候,忽略掉那些无法编码的字符,

 

解码同理。

但是,当我们执行后,发现可以成功的将utf-8格式的文件修改成了ansi格式。但,另外发现生成的文件中,每个一行都有一行空行。

这里,可以指定以二进制流的形式写文件,修改后的代码如下:


# @param Python:将utf-8格式的文件转换成gbk格式的文件
# @author 四海网|q1010.com 

def WriteFile(filePath,u,encoding="gbk"):
    with codecs.open(filePath,"wb") as f:
        f.write(u.encode(encoding,errors="ignore"))

# End www_512pic_com

本文来自:http://www.q1010.com/181/1937-0.html

注:关于Python将utf-8格式文件转换成gbk格式的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:文件转换,格式

您可能感兴趣的文章

  • Python 字符串格式化解析
  • js判断字符串是否JSON格式的简单示例
  • Python日期格式化功能实例
  • Python 占位符格式化的简单示例
  • Python 字符串格式化 (%操作符)的简单示例
  • JS从数字千分位格式化的性能优化入门实例
  • Sql Server 日期格式化函數 Convert的完整代码
  • PHP 数字格式化,数字每三位加逗号的简单示例
  • php 采集并合成txt格式文件功能实例
  • php 格式化textarea文本域内容函数示例
上一篇:Python 文件处理的简单示例
下一篇:python开发豆瓣解析
热门文章
  • Python 处理Cookie的菜鸟教程(一)Cookie库
  • python之pandas取dataframe特定行列的简单示例
  • Python解决json.dumps错误::‘utf8’ codec can‘t decode byte
  • Python通过pythony连接Hive执行Hql的脚本
  • Python 三种方法删除列表中重复元素的简单示例
  • python爬虫代码示例
  • Python 中英文标点转换示例
  • Python 不得不知的开源项目解析
  • Python urlencode编码和url拼接实现方法
  • python按中文拆分中英文混合字符串的简单示例
  • 最新文章
    • Python利用numpy三层神经网络的简单示例
    • pygame可视化幸运大转盘的简单示例
    • Python爬虫之爬取二手房信息的简单示例
    • Python之time库的简单示例
    • OpenCV灰度、高斯模糊、边缘检测的简单示例
    • Python安装Bs4及使用的简单示例
    • django自定义manage.py管理命令的简单示例
    • Python之matplotlib 向任意位置添加一个子图(axes)的简单示例
    • Python图像标签标注软件labelme分析的简单示例
    • python调用摄像头并拍照发邮箱的简单示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。