Python 轉換檔案編碼

2021-09-24 16:37:58 字數 2072 閱讀 2143

有時候想要把**放到平板或是手機上**,但是相應的閱讀軟體支援編碼為utf-8格式的檔案,類似gbk等編碼格式裡的漢字都會呈現亂碼狀態。手動用notepad++轉換很方便,但是批量處理就很尷尬了,由此引出本篇blog

chardet、codecs

codecs模組提供了實現這些規則的方法,通過模組公開的方法我們能夠方便地獲取某種編碼方式的encoder和 decoder工廠函式(factory function),以及streamreader、streamwriter和streamreaderwriter類。

import os

import sys

import codecs

import chardet

from subfunc_tools import *

#將路徑下面的所有檔案,從原來的格式變為utf-8的格式

if __name__ == "__main__":

path = r'd:\code_sources\python_pycharm\convert_gbk_utf-8\test_txt'

(list_folders, list_files) = list_folders_files(path)

print("path: " + path)

for filename in list_files:

filepath = path + '\\' + filename

with open(filepath, "rb") as f:

data = f.read()

codetype = chardet.detect(data)['encoding']

convert(filepath, codetype, 'utf-8')

import os

import sys

import codecs

import chardet

from subfunc_tools import *

def convert(file, in_enc="gbk", out_enc="utf-8"):

"""該程式用於將目錄下的檔案從指定格式轉換到指定格式,預設的是gbk轉到utf-8

:param file:    檔案路徑

:param in_enc:  輸入檔案格式

:param out_enc: 輸出檔案格式

:return:

"""in_enc = in_enc.upper()

out_enc = out_enc.upper()

try:

print("convert [ " + file.split('\\')[-1] + " ].....from " + in_enc + " --> " + out_enc )

f = codecs.open(file, 'r', in_enc)

new_content = f.read()

codecs.open(file, 'w', out_enc).write(new_content)

# print (f.read())

except ioerror as err:

print("i/o error: ".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):

else:

return (list_folders, list_files)

(編碼轉換)轉換檔案編碼

目錄 1 轉換編碼種類 2 轉編碼操作步驟 1 轉換編碼種類 可轉為 utf 8 最常用 ansi unicode unicode big endian 這四類編碼 2 轉換編碼操作步驟 1 將檔案以記事本方式開啟 注意 如果不可以請先將檔案轉換為 csv 檔案,再以記事本開啟 2 點選記事本左上方...

QT開發 遞迴轉換檔案編碼

第一步 先用這個檔案原先的編碼讀取檔案內容存到區域性變數當中,然後呼叫qfile remove 方法刪除檔案 第二步 建立乙個跟原先檔名同名的檔案,然後設定你要轉換的編碼,使用qtextsream setcodec 方法 將檔案內容寫入這個新建立的檔案當中 以上兩步就可以實現給檔案轉碼。void w...

Mac下轉換檔案編碼格式

win下檔案預設使用gbk編碼,而mac下是utf 8,難免遇到亂碼的情況,可以通過終端iconv命令解決。單個檔案轉碼 iconv f 原編碼格式 t 新編碼格式 原路徑 新路徑 iconv f gbk t utf 8 users ypf downloads 恐怖廣播.txt users ypf ...