使用Python進行編碼轉換

2021-09-20 18:20:11 字數 2054 閱讀 7455

首先import os,sys

import os,sys  11
定義乙個函式

def convert( filename, in_enc = "utf8", out_enc="gbk" ):`11
第乙個引數是需要裝換的檔名,第二個是原始檔的原編碼,第三個是需要轉為目標編碼。第二個、第三個引數都有預設值。

def convert( filename, in_enc = "utf8", out_enc="gbk" ):       try:           print "convert " + filename,                 #讀取檔案內容          content = open(filename).read()          #將原檔案內容進行編碼得到新檔案內容         new_content = content.decode(in_enc).encode(out_enc)          #開啟檔案將新檔案內容寫進去          open(filename, 'w').write(new_content)           print " done"       except:           print " error"123456789101112123456789101112
以上這個方法針對的檔名,但如果只輸入了目錄,又要查詢目錄下的所有檔案,所以就再定義乙個方法。

def explore(dir): #遍歷目錄的所有檔案 並將根目錄 存在變數root中,目錄名存於dirs中,檔名存於files中     for root, dirs, files in os.walk(dir):       #再次遍歷所有檔名files         for file in files:           #將檔名與根目錄進行拼接  形成絕對路徑             path = os.path.join(root, file)               #呼叫上面編碼轉換函式             convert(path)123456789123456789
最後在main函式中判斷是否輸入的是檔名還是目錄

def main():#獲取命令列的第乙個引數       for path in sys.ar**[1:]:       #如果是檔案 則呼叫單個檔案編碼轉換         if os.path.isfile(path):               convert(path)              #否則就呼叫 explore方法         elif os.path.isdir(path):               explore(path)123456789123456789
完整原始碼如下:

import os,sys   def convert( filename, in_enc = "utf8", out_enc="gbk" ):       try:           print "convert " + filename,           content = open(filename).read()           new_content = content.decode(in_enc).encode(out_enc)           open(filename, 'w').write(new_content)           print " done"       except:           print " error"  def explore(dir):       for root, dirs, files in os.walk(dir):           for file in files:               path = os.path.join(root, file)               convert(path)   def main():       for path in sys.ar**[1:]:           if os.path.isfile(path):               convert(path)           elif os.path.isdir(path):               explore(path)   if __name__ == "__main__":       main()

Linux使用iconv進行編碼轉換

最近在做專案,為了能讓ui顯示中文,需要對中文進行編碼轉換。因為我用的是directfb,它只支援utf 8格式,所以要將gb2312轉換為utf 8,這時使用iconv是非常方便的。以下是我在專案中用到的一部分 首先要使用iconv的api需要包含它的標頭檔案 include iconv.h 或者...

Python 編碼轉換

coding utf 8 s abc print type s str utf 8 print len s 3 s unicode s str unicode,其中str的每個字元值必須小於128 print type s unicode print len s 3 s u abc print ty...

python編碼轉換

參見 主要介紹了python的編碼機制,unicode,utf 8,utf 16,gbk,gb2312,iso 8859 1 等編碼之間的轉換。常見的編碼轉換分為以下幾種情況 1.自動識別字串編碼 coding utf8 import urllib import chardet rawdata ur...