python怎么转换文件格式_[python]转换文件编码格式
文件编码格式一直是很多人特别头疼的一件事情,最近由于跨平台开发,经常出现编码格式的问题。所以关于编码格式转换采用python的方式记录下来以便后期需要。让我们一起走进python对编码格式的操作之路
编码格式介绍
ASCII码:使用单字节编码,所以范围基本只有英文字母、数字和一些特殊字符;只有256个字节。
Unicode:能够表示全世界的所有字符。
GBK:只用来编码汉字的,GBK全称《汉字编码扩展规范》双字节编码。
UTF-8:针对Unicode的可变字符编码,又称万能码。
三方库文件
chardet、codecs
库文件简介
在Python中,codecs模块提供了实现这些规则的方法,通过模块公开的方法我们能够方便地获取某种编码方式的Encoder和 Decoder工厂函数(Factory function),以及StreamReader、StreamWriter和StreamReaderWriter类。
在处理字符串时,常常会遇到不知道字符串是何种编码,如果不知道字符串的编码就不能将字符串转换成需要的编码。面对多种不同编码的输入方式,是否会有一种有效的编码方式?chardet是一个非常优秀的编码识别模块。
代码转换实例
Main函数
import os
import sys
import codecs
import chardet
#将路径下面的所有文件,从原来的格式变为UTF-8的格式
def Main():
path = '文件路径'
(floders, files) = list_folders_files(path)
for file in files:
file_name =os.path.join(floders,file)
with open(file_name, "rb") as f_in:
data = f.read()
code_type = chardet.detect(data)['encoding']
file_convert(file_name,file, code_type, 'UTF-8')
文件转换代码
def convert(file_name,file, in_code="GBK", out_code="UTF-8"):
"""
该程序用于将目录下的文件从指定格式转换到指定格式,默认的是GBK转到UTF-8
:param file: 文件路径
:param in_code: 输入文件格式
:param out_code: 输出文件格式
:return:
"""
out_path='输出文件路径'
try:
with codecs.open(file_name, 'r', incode) as f_in:
new_content = f_in.read()
f_out = codecs.open(os.path.join(out_path,file), 'w', out_code)
f_out.write(new_content)
f_out.close
except IOError as err:
print("I/O error: {0}".format(err))
获取指定文件夹下文件
import os
def list_folders_files(path):
"""
返回 "文件夹" 和 "文件" 名字
:param path: "文件夹"和"文件"所在的路径
:return: (list_folders, list_files)
:list_folders: 文件夹
:list_files: 文件
"""
list_folders = []
list_files = []
for file in os.listdir(path):
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
list_folders.append(file)
else:
list_files.append(file)
return (list_folders, list_files)
Linux 命令行转换
iconv命令用于文件编码的转换,
碰到gbk编码的文件,需要转换成utf8,直接使用该命令即可。
命令用法
iconv --list :列出iconv支持的编码列表
语法
iconv -f 原编码 -t 新编码 filename -o newfile
参数说明
参数
参数描述
-f
from 来源编码
-t
to 转换后新编码
-c
忽略无效字符
-s
--silent,忽略警告
-o file
可选,没有的话直接,
转换当前文件,使用-o 保留源文件
命令实例
查看文件
$ file test
test: UTF-8 Unicode text
转换
$ iconv -f utf8 -t gbk test -o test.gbk
效果
$ file test*
test: UTF-8 Unicode text
test.gbk: ISO-8859 text
python怎么转换文件格式_[python]转换文件编码格式相关推荐
- python中gettext文件格式_如何将gettext .mo文件转换为.po文件 - python
Improve this question 当.po文件不再可用时,有什么方法可以将.mo文件转换为.po文件源?我需要编辑.mo文件的内容,但没有.po文件.可能吗? 参考方案 msgunfmt [ ...
- python希腊字母怎么生成_#python sympy怎样把狄克拉函数定义出来#
Python sympy用integrate解定积分出来的结果不是计算完的结果 ## 数值积分 sympy下的integrate()函数是解析积分,当被积函数不存在原函数时则无法得到节分结果.所以建议 ...
- python shell如何打开_“python shell怎么打开“python shell启动教程
python shell怎么打开 1.简介:如何在python中运行shell(bash命令) 2.工具/原料:python库:os.py 3.方法:import os command = 'date ...
- python输出文本居中_#python PIL ImageDraw text 文本居中#
python pip pil有什么东西 你所问的问题实是属1.先参考[教程]Python中的内置的和方的模块搞懂PIL是属于第三方Python模块2.再参考:[待完善][总结]Python安装第三方的 ...
- python多进程编程实例_[python] Python多进程编程技术实例分析
这篇文章主要介绍了Python多进程编程技术,包括了线程.队列.同步等概念及相关的技巧总结,需要的朋友可以参考下 本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧. ...
- python快速爬虫视频_“python怎么快速爬虫视频“python 爬网页视频教程
用python怎样爬网页 # coding:utf8 import cookielib import urllib2 url = "http://blog.uouo123.com" ...
- python朋友圈刷屏_“Python太火了!请救救Java!”9万程序员刷屏朋友圈 !
没想到有生之年,笔者能观察到"霸主陨落"的过程,继PLPY4月榜单官宣,Python躺赢,再度"夺"冠,实力甩下Java和C后,近期,Stack Overflo ...
- linux 文件格式latin1,Linux查看文件编码格式
linux查看文件编码格式 1.file命令 首先查看file命令的help,file --help,里面有详情的参数说明. 使用file 命令查看文件的编码格式 [root@dep-184 /]# ...
- python数字转字符串_字符串转换与格式化
字符串转换与格式化¶ 用于数字转换和格式化字符串输出的函数 int PyOS_snprintf(char*str, size_tsize, const char*format, ...)¶ 根据格式字 ...
- python怎么转换文件格式_python怎么转换数据类型
在处理数据的时候,经常需要转换数据的格式,来方便数据遍历等操作.下面我们来看一下Python中的几种数据类型转换. 1.字符串转字典:dict_string = "{'name':'linu ...
最新文章
- ubuntu14.04初体会
- ue4加载本地版本_【虚幻4】创建本地数据库
- 华硕路由 ac ax_WiFi 6 路由好在哪里,看看华硕AX路由推荐清单吧
- 近期值得读的10篇GAN进展论文
- .Net解析html文档类库HtmlAgilityPack完整使用说明
- html 日历系统 源码,calendar.html
- C#程序将DLL包进EXE方法
- Linux 编译 libc log,在Android的源码中添加LOG
- Linux bind DNS配置
- ld: warning: cannot find entry symbol _start; defaulting to 00000000080481d8
- 虚拟机安装JDK1.8
- 你必不可能错过的java开源商城项目
- 倒立摆小车matlab仿真,倒立摆系统的建模及Matlab仿真分析
- 【语音处理】开始学习语音,从基本概念和应用讲起
- 分区表丢失修复与系统启动修复
- 《学习 Go 语言》学习心得
- Docker07:打包部署前端项目
- Unity 用ml-agents机器学习造个游戏AI吧(2)(入门DEMO)
- pyscripter支持python什么版本_pyscripter 64位下载-pyscripter x64下载2.5.3 官方最新版-Python集成开发环境IDE西西软件下载...
- 微信小程序如何实现登录注册带源码
热门文章
- 如何通过视频转换器将qsv格式转换成mp4格式
- 基于同义词词林扩展版的词语相似度计算
- 关于OS端/iOS端QQ表情白边处理方案
- 视频专辑:LAMP兄弟连李明老师2011年新版原创Linux视频教程
- 吉林大学计算机学院控制与应用实验室,2019计算机考研吉林大学国家物联网虚拟仿真实验教学中心简...
- ACR122U Android端应用开发入道指南
- MacOS版/Windows桌面版微信多开双开教程技巧以及双开代码
- 微信windows版_微信Windows版更新3.0:小程序可添加至桌面
- 传感器i2c与arduino连接_ARDUINO的I2C通信详解 - arduino读取I2C总线上连接设备的地址...
- 计算机水平考试模块数量,职称计算机考试科目、模块数量是什么