Überprüfen Sie den Zeichencode für alle Dateien im Verzeichnis Python und geben Sie ihn aus

Überblick

[DIR_NAME] Für alle folgenden Dateien Überprüfen Sie, ob es sich um eine Textdatei mit dem in [TARGET_ENCODING_LIST] definierten Zeichencode handelt. Ausgabe in den Dateinamen [OUTPUT_NAME]. Wenn es nicht bestimmt werden kann, wird es als binär ausgegeben.

Umgebung

Windows8 + Python2.6-Serie

Code

check_encoding.py


#!/usr/bin/python
# -*- coding: utf-8 -*-
# vim: fileencoding=utf-8

import os , sys

DIR_NAME = 'C:\\Program Files\\'
OUTPUT_NAME = 'result_file_encoding_list.txt'

TARGET_ENCODING_LIST = [
	'utf-8',
	'shift-jis',
	'euc-jp',
	'iso2022-jp'
]

FLAG_STDOUT = True
#FLAG_STDOUT = False

import os, sys

write = sys.stdout.write

def guess_charset(data):
	file = lambda d, encoding: d.decode(encoding) and encoding
	for enc in TARGET_ENCODING_LIST:
		try:
			file(data, enc)
			return enc
		except:
			pass
	return 'binary'

out = open(OUTPUT_NAME, 'w')
for dirpath, dirs, files in os.walk(DIR_NAME):
	for fn in files:
		path = os.path.join(dirpath, fn)
		fobj = file(path, 'rU')
		data = fobj.read()
		fobj.close()
		try:
			enc = guess_charset(data)
		except:
			continue
		str = path + ',' + enc + '\n'
		try:
			if FLAG_STDOUT == True:
				write(str)
			out.write(str)
		except:
			continue

Ergänzung

Ausnahmebehandlung ist angemessen. Wenn der Dateiname japanische Zeichen enthält, werden die Zeichen verstümmelt.

Recommended Posts

Überprüfen Sie den Zeichencode für alle Dateien im Verzeichnis Python und geben Sie ihn aus
Überprüft, ob für alle Dateien im Verzeichnis Python eine bestimmte Zeichenfolge vorhanden ist, und gibt die Zielzeile aus
Wofür ist der Python-Unterstrich (_)?
Löschen Sie alle pyc-Dateien im angegebenen Verzeichnis
Entpacken Sie alle Zip-Dateien im aktuellen Verzeichnis
Suchen Sie im aktuellen Verzeichnis nach Dateien mit dem Zeilenvorschubcode CR + LF
Python-Skript, das alle UTF-8-Dateien unter dem Ordner mit Stückliste ohne Stückliste erstellt
Suchen Sie rekursiv nach Dateien und Verzeichnissen in Python und geben Sie sie aus
Python> Überprüfen Sie, ob Code druckbar ist> Verwenden Sie ord () / all (c in string.printable für c in hallo)
Kopieren Sie mit Python rekursiv Dateien aus dem Verzeichnis direkt unter dem Verzeichnis
[Python] Python und Sicherheit - is Was ist Python?
Was ist die Schnittstelle für ...
Was soll ich denn mit der Python-Verzeichnisstruktur machen?
[Python] Überprüfen Sie das aktuelle Verzeichnis und verschieben Sie das Verzeichnis
[Python] Was ist @? (Über Dekorateure)
[Python] Was ist der sortierte Schlüssel?
Python für Anweisung ~ Was ist iterierbar ~
Exportieren und Ausgeben von Dateien in Python
Befehl für das aktuelle Verzeichnis Python
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
Für Windows: Ruft eine Liste der Verzeichnisse und Dateien in einem bestimmten Verzeichnis ab.
[Einführung in Python] Was ist der Unterschied zwischen einer Liste und einem Taple?
[Beispiel für eine Python-Verbesserung] Was ist die empfohlene Lernseite für Python-Anfänger?
Python-Anfänger ~ Runden Sie die N-te Stelle des Dezimalpunkts ab und geben Sie ~ aus (für Memo)
[Python] Verschieben Sie Dateien, die die Bedingungen erfüllen
[Python] Was ist Pandas Series und DataFrame?
Was ist "Mahjong" in der Python-Bibliothek? ??
[Python] Ruft den Zeichencode der Datei ab
SublimeText2 und SublimeLinter - Syntax prüfen auf Python3--
Was ist der Unterschied zwischen "pip" und "conda"?
[Python] Checklistenelemente alle, alle
Was ist "funktionale Programmierung" und "objektorientiert"? Python Edition
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Was ist im Docker Python-Image pfeifend?
Bachstelze ist das beste CMS für Python! (Vielleicht)
Über den Unterschied zwischen "==" und "is" in Python
Was vergleichst du mit Python und ==?
Links und Memos von Python-Zeichencodezeichenfolgen
Was ist Eimersortierung? Meridem und Codebeispiel
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
PDF-Dateien und Websites zum Erlernen von Python 3
Code zum Überprüfen des Betriebs von Python Matplot lib
Konvertieren Sie den Zeichencode der Datei mit Python3
virtualenv Das ist vorerst alles!
Was sind Python Taples und * Args?
Was ist der Unterschied zwischen Unix und Linux?
Importieren Sie audit.log in Splunk und überprüfen Sie das Verhalten beim ersten Start von Splunk.
Überprüfen Sie die Verarbeitungszeit und die Anzahl der Aufrufe für jeden Prozess mit Python (cProfile).
Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben