概述
首先在linux下有iconv命令可以实现编码字符集的转换
具体使用方式:iconv -f codename -t codename filename > newfilename
-f 后跟源编码,-t后跟转换后的编码。可以使用iconv -l列出操作系统支持的编码方式
接下来使用python来实现,python内置函数encode(‘codename1’):编码,将字符编码为codename1字符集里该字符的码值,decode(‘codename2’)将码值解码为codename2中该字符对应的码。
data = data.encode(chardet.detect(data)).decode(‘utf-8’)
类似实现方式:
#!/usr/bin/python3
import codecs
import os
import chardet
def detectCode(path):
with open(path, ‘rb’) as file:
data = file.read()
dicts = chardet.detect(data)
file.close()
node = dicts[‘encoding’]
if node == ‘GB2312’:
node = ‘GBK’
if dicts[‘encoding’] != ‘utf-8’:
with codecs.open(path,‘rb’,node) as f:
content = f.read()
with codecs.open(path,‘wb’,‘utf-8’) as f:
f.write(content)
with open(path,‘rb’) as file:
data = file.read()
dicts = chardet.detect(data)
file.close()
os.path.splitext(path)
os.rename(path,path.split(’.txt’,1)[0] + “.utf8.txt”)
return dicts[‘encoding’]
if name == ‘main’:
path = input("输入log文件路径: ")
print(detectCode(path))
最后
以上就是现实蓝天为你收集整理的python 实现文件编码方式的转换的全部内容,希望文章能够帮你解决python 实现文件编码方式的转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复