使用python實現批量轉換檔案編碼格式
最近在學習redis的原始碼,從網上下載了一份大神註釋好的程式碼,但是檔案編碼格式是utf-8的使用sourcesight開啟會出現亂碼,sourceinsight不支援utf-8格式,網上找了一下,說需要安裝外掛解決,今天主要目的不是整sourceinsight,主要最近在學python,想練練手
因為是python新手,記錄一下主要用到的模組和函式,加深印象
使用模組:os ,sys,codec,chardet
使用函式
sys.argv:用來獲取命令列引數,sys.argv[0]標識程式碼本身路徑
os.path :實現了操作路徑的常用函式
os.path.isfile:判斷是否為檔案
os.path.isdir:判斷是否為目錄
os.walk:遍歷目錄樹,返回一個三元組(root,dirs,files)
root 所指的是當前正在遍歷的這個資料夾的本身的地址
dirs 是一個list,內容是該資料夾中所有的目錄的名字(不包括子目錄)
files 同樣是list,內容是該資料夾中的所有檔案(不包括子目錄)
這個函式感覺有點不好理解,發現了一個大神的文章,寫的特別詳細,貼上鍊接:
os.path.join:合併了多個路徑並返回
codecs.open:開啟檔案時將檔案轉換成Unicode編碼,杜絕亂碼,返回檔案控制代碼
檔案控制代碼.read:讀取檔案內容,檔案內容從返回值返回
檔案控制代碼.write:寫檔案
chardet.detect:識別檔案的編碼格式,返回一個字典
confidence:返回的編碼格式的可能性
encoding:編碼格式
OK,貼程式碼
# -*- coding: utf-8 -*- ''' This file is order to covert file code format batch process ''' import os import sys import codecs import chardet def GetFileExtension(file): (filepath, filename) = os.path.split(file) (shortname, extension) = os.path.splitext(filename) return extension def GetFileEncodingFormat(file): fileHandle = open(file, 'r', errors = 'ignore') fileContext = fileHandle.read() return chardet.detect(fileContext.encode())["encoding"] def CovertFileCodeFormat(file, out_encode): try: encoding = GetFileEncodingFormat(file) extension = GetFileExtension(file) if (encoding != out_encode and (extension == '.c' or extension == '.h')): fileHandle = codecs.open(file, 'r', encoding, errors = 'ignore') fileContext = fileHandle.read() codecs.open(file, 'w', out_encode, errors = 'ignore').write(fileContext) print ("convert:" + file + " sucess") except IOError as err: print ("I/O error: {0}".format(err)) def ProcessDir(dir): for root, dirs, files in os.walk(dir): for file in files: filePath = os.path.join(root, file) CovertFileCodeFormat(filePath, sys.argv[2]) def main(): path = sys.argv[1] if (os.path.isfile(path)): CovertFileCodeFormat(path, sys.argv[2]) elif (os.path.isdir(path)): ProcessDir(path) if __name__ == '__main__': main()
相關推薦
使用python實現批量轉換檔案編碼格式
最近在學習redis的原始碼,從網上下載了一份大神註釋好的程式碼,但是檔案編碼格式是utf-8的使用sourcesight開啟會出現亂碼,sourceinsight不支援utf-8格式,網上找了一下,說需要安裝外掛解決,今天主要目的不是整sourceinsight,主要最近在
利用nodepad++中的python script外掛批量轉換檔案編碼為utf-8
兩個部落格寫的都很好。 但是沒有講到最重要的怎麼執行這個python指令碼 這裡直接使用了上述文章的文字描述 選擇Plugins->Plugin Manager->Show Plugin Manager 安裝 Python Script。
python實現中文轉換url編碼的方法
pos true clas url編碼 python 10.10 前端 美的 http 本文實例講述了python實現中文轉換url編碼的方法。分享給大家供大家參考,具體如下: 之前做上傳圖片編輯的時候,文件路勁中出現中文,會變成以下這種格式: http://192
使用windows命令和iconv.exe批量轉換檔案編碼
iconv是知名的開源跨平臺編碼轉換庫,iconv.exe是iconv庫在windows下的命令列工具,iconv.exe的一般用法:iconv.exe -f gbk -t utf-8 gbk.txt > utf-8.txt。其中 -f gbk 指明轉換前的檔案編碼是gbk,-t utf-8
Python實現批量處理檔案的縮排和轉碼問題
最近把很久前的C程式碼傳到Github上的時候,發現全部上百個原始檔的程式碼縮排都變成了8格,而且裡面的中文都出現了亂碼,所以決定寫個程式來批量處理所有檔案的格式。這段關於轉碼的程式碼可以適用於很
Python實現批量圖片格式轉換
深度學習過程中總是繞不開資料集的製作,有時候實際圖片格式或大小可能與需要關心的圖片資訊不一致,那麼我們只能手動做好資料預處理,再進行training dataset.現在將介紹最簡單的格式轉換問題。可以支援批量圖片任意格式轉換。 直接上程式碼:# 將jpg格式轉位
FilesCodingConvert--批量檔案編碼格式轉換工具
FilesCodingConvert–批量檔案編碼格式轉換工具 簡介 最近開始學習使用Android Studio,因為它的方便易用,我打算以後就不在使用ADT的方式編寫Android專案了。當從Eclipse專案向AS專案遷移時遇到了一個問題,就是檔案
Linux 檔案編碼格式轉換
如果需要在Linux 中操作windows下的檔案,那麼經常遇到檔案編碼轉換的問題。 Windows中預設的檔案格式是GBK(gb2312),而Linux一般都是UTF-8。 檢視檔案編碼 在vim 中可以直接檢視檔案編碼 輸入命令 :set fileencoding 即可顯示檔案編碼格式。 檔案
Linux下檔案編碼格式轉換
常常在Linux中操作Windows下的檔案時,會遇到亂碼的情形。常見的比如在Visual Studio 中寫的C\C++程式需要放到Linux主機上編譯,而程式的中文註釋則顯示為亂碼,比較嚴重的是由於編碼原因,Linux上的編譯器報錯。 這是由於Windows中預設的檔案格式是GBK(gb2312),而L
【python】批量轉換圖片格式tif--png
###1.配置wand windows 下實現圖片格式轉換,需要安裝一個exe,在此下載 其中安裝的時候要注意: 一定選擇Install development headers and libraries for C and C++ ###2.程式碼實現 我在這裡實現的是tif轉為pn
CAD圖紙檔案如何批量轉換成PDF格式?
CAD圖紙檔案如何批量轉換成PDF格式?從事CAD相關工作的小夥伴們相信都不會對於CAD轉換有陌生的,因為他們會時常接觸,那麼如果我們想將CAD圖紙批量轉換成PDF格式應該如何進行操作呢?如何將多張CAD圖紙檔案批量轉換成PDF格式,今天小編就要來教教大家解決這個辦法的全部操作步驟,希望大家能夠進行採
如何將CAD圖紙檔案批量轉換成TIFF格式?
如何將CAD圖紙檔案批量轉換成TIFF格式?通常在我們繪製一張CAD圖紙檔案會需要將其轉換成一些圖片的格式,TIFF格式就是圖片格式中的一種格式,如果我們需要將CAD圖紙檔案批量轉換成TIFF格式的時候,我們應該如何進行此項操作呢,今天小編就來教教大家如何將CAD圖紙檔案批量轉換成TIFF格式的全部操
Notepadpp批量轉換檔案格式
<在網上下載一些開原始碼後,在Eclipse中、在SourceInsight中開啟,都是亂碼。——因為這些程式碼是utf-8編碼格式,而si不支援。所以需要對檔案格式進行轉換。 Notepad++可以自動轉換,比如開啟一個檔案,選單“轉換為ANSI編碼格
python實現批量刪除某個路徑下所有的某種檔案
引言:下面是以前寫的批量刪除某資料夾及其子資料夾下的.pyc檔案,可參照下實現批量刪除別的型別的檔案。用的是python2.7 #coding=utf-8 import os def r
eclipse實現批量修改檔案的編碼方式
在eclipse+MyEclipse環境下,開啟一個jsp檔案,經常發現漢字無法顯示,右鍵點選檢視這個檔案屬性,發現檔案的字元編碼屬性為ISO-8859-1。 目前的解決方法有: 1. 手工把檔案屬性改成GBK,每個檔案都要做設定,很麻煩。 2. 不要在Ecl
linux 下的檔案編碼格式轉換
使用場景: 在 linux 平臺上對檔案格式進行轉換,比如將GBK格式的檔案轉換為UTF8格式 轉換方法 1. 使用 iconv 使用 man 檢視 iconv 的幫助命令,比較簡單 NAME iconv - Convert en
Python實現批量執行同目錄下的py檔案
Python版本:3.5 網上找了好多資料都沒有直觀的寫出怎麼批量執行,so,整理了一個小程式。最初是為了用Python進行單元測試,同目錄下有兩個unittest檔案, AllTest.py的目的是批量執行mytest.py、mytest2.py。程式碼如下: #批
檔案編碼格式轉換
package com.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; impo
linux下如何檢視檔案編碼格式及轉換檔案編碼
常常在Linux中操作windows下的檔案時,會遇到亂碼的情形。常見的比如在Visual Studio 中寫的C\C++程式需要放到Linux主機上編譯,而程式的中文註釋則顯示為亂碼,比較嚴重的是由於編碼原因,linux上的編譯器報錯。 這是由於Windows中預設的檔案
Python 改變檔案編碼格式
#-*- coding:UTF-8 -*- import sys import os import codecs def ReadFile(filePath,encoding): with codecs.open(filePath,'r',encoding) as