首页 / PYTHON / [python]转换文件编码格式
[python]转换文件编码格式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[python]转换文件编码格式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1429字,纯文字阅读大概需要3分钟。
内容图文
![[python]转换文件编码格式](/upload/InfoBanner/zyjiaocheng/639/e4c507db95cc406189025c6334912c9a.jpg)
临时需求,需要把两年的csv文件转换格式,因为utf-8文件用Excel打开是乱码!24个目录700多个文件,手动处理太浪费时间。。。于是想着批量处理方案:
# -*- encoding: utf-8 -*-
"""
fc_test.py
Created on 2020/3/9 0009 下午 5:06
@author: LHX
"""
import os
import sys
import codecs
import chardet
# 将路径下面的所有文件,从原来的格式变为UTF-8的格式
def file_convert(path1,file_name,file, in_code="GBK", out_code="UTF-8"):
"""
该程序用于将目录下的文件从指定格式转换到指定格式,默认的是GBK转到UTF-8
需要手动建立输出目录(输入目录_convert)
"""
out_path = path1+'_convert'
print("==111",out_path)
try:
with codecs.open(file_name, 'r', in_code) 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(path1):
lsdir = os.listdir(path1)
dirs = [i for i in lsdir if os.path.isdir(os.path.join(path1, i))]
if dirs:
for i in dirs:
list_folders_files(os.path.join(path1, i))
files = [i for i in lsdir if os.path.isfile(os.path.join(path1,i))]
# for f in files:
# print ("==",os.path.join(path, f))
for f in files:
file_name =os.path.join(path1,f)
with open(file_name, "rb") as f_in:
data = f_in.read()
code_type = chardet.detect(data)['encoding']
file_convert(path1,file_name,f, code_type, 'UTF-8')
#设置输入目录并执行程序
path = 'E:\\tmp\\2018_1\\'
list_folders_files(path)
内容总结
以上是互联网集市为您收集整理的[python]转换文件编码格式全部内容,希望文章能够帮你解决[python]转换文件编码格式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。