So verwenden Sie Python, um das Codierungsformat von Textdateien stapelweise zu ändern

WBOY
Freigeben: 2023-05-01 19:13:11
nach vorne
2463 Leute haben es durchsucht

Verwenden Sie Python, um das Codierungsformat von Textdateien stapelweise zu ändern.

Transformieren Sie das Codierungsformat von Textdateien wie ASCII, GB2312, UTF8 usw. stapelweise und konvertieren Sie es gegenseitig Die Größe des Zeichensatzes ist utf8> gb2312>ascii, daher ist es am besten, gb2312 in utf8 zu konvertieren, da sonst leicht verstümmelte Zeichen angezeigt werden. Der Hauptunterschied zwischen gb2312 und utf-8: Chinesische Schriftzeichen)

Informationen zur Speichergröße

: UTF-8> und lädt schneller)#🎜 🎜#Über den Anwendungsbereich

: gb2312 wird hauptsächlich auf dem chinesischen Festland verwendet. Es handelt sich um einen lokalisierten Zeichensatz, der UTF-8 enthält Es wird in allen Ländern der Welt verwendet und ist universell. UTF-8-codierter Text kann in Browsern in verschiedenen Ländern angezeigt werden, die den UTF8-Zeichensatz unterstützen.

import sys
import chardet
import codecs
 
def get_encoding_type(fileName):
    '''print the encoding format of a txt file '''
    with open(fileName, 'rb') as f:
        data = f.read()
        encoding_type = chardet.detect(data)
        #print(encoding_type)
        return encoding_type
        # such as {'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
 
def convert_encoding_type(filename_in, filename_out, encode_in="gb2312", encode_out="utf-8"):
    '''convert encoding format of txt file '''
    #filename_in = 'flash.c'
    #filename_out = 'flash_gb2312.c'
    #encode_in = 'utf-8'  # 输入文件的编码类型
    #encode_out = 'gb2312'# 输出文件的编码类型
    with codecs.open(filename=filename_in, mode='r', encoding=encode_in) as fi:
        data = fi.read()
        with open(filename_out, mode='w', encoding=encode_out) as fo:
            fo.write(data)
            fo.close()
        # with open(filename_out, 'rb') as f:
        #     data = f.read()
        #     print(chardet.detect(data))
 
if __name__=="__main__":
    # fileName = argv[1]
    # get_encoding_type(fileName)
    # convert_encoding_type(fileName, fileName)
    filename_of_files = sys.argv[1]   #the file contain full file path at each line
    with open(filename_of_files, 'rb') as f:
        lines = f.readlines()
        for line in lines:
            fileName = line[:-1]
            encoding_type = get_encoding_type(fileName)
            if encoding_type['encoding']=='GB2312':
                print(encoding_type)
                convert_encoding_type(fileName, fileName)
                print(fileName)
Nach dem Login kopieren
Ergänzung: Python implementiert die Stapelkonvertierung von Dateien in das UTF-8-Format

Python implementiert die Stapelkonvertierung von Dateien in das UTF-8-Format

xml_path = './'
with open(xml_path , 'rb+') as f:
    content = f.read()
    codeType = detect(content)['encoding']
    content = content.decode(codeType, "ignore").encode("utf8")
    fp.seek(0)
    fp.write(content)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python, um das Codierungsformat von Textdateien stapelweise zu ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!