Vérifiez quel est le code de caractère pour tous les fichiers sous le répertoire Python et sortie

Aperçu

[DIR_NAME] Pour tous les fichiers ci-dessous Vérifiez s'il s'agit d'un fichier texte avec le code de caractère défini dans [TARGET_ENCODING_LIST], Sortie au nom de fichier de [OUTPUT_NAME]. S'il ne peut pas être déterminé, il sera affiché sous forme binaire.

environnement

Série Windows8 + Python2.6

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

Supplément

La gestion des exceptions est appropriée. Si le nom de fichier contient des caractères japonais, les caractères seront déformés.

Recommended Posts

Vérifiez quel est le code de caractère pour tous les fichiers sous le répertoire Python et sortie
Vérifie s'il existe une chaîne de caractères spécifique pour tous les fichiers sous le répertoire Python et renvoie la ligne cible
À quoi sert le trait de soulignement Python (_)?
Supprimer tous les fichiers pyc dans le répertoire spécifié
Décompressez tous les fichiers zip dans le répertoire actuel
Rechercher des fichiers avec le code de saut de ligne CR + LF dans le répertoire courant
Script Python qui crée tous les fichiers UTF-8 sous le dossier avec BOM sans BOM
Recherche récursive de fichiers et de répertoires en Python et sortie
python> Vérifier si le code est imprimable> Utiliser ord () / all (c dans string.printable for c in hello)
Copiez récursivement les fichiers du répertoire directement sous le répertoire en utilisant Python
[Python] Python et sécurité-① Qu'est-ce que Python?
A quoi sert l'interface ...
Que dois-je faire avec la structure de répertoires Python après tout?
[Python] Vérifiez le répertoire actuel, déplacez le répertoire
[Python] Qu'est-ce que @? (À propos des décorateurs)
[python] Quelle est la clé triée?
Python pour la déclaration ~ Qu'est-ce qui est itérable ~
Exporter et exporter des fichiers en Python
Commande pour le répertoire courant Python
Comment saisir une chaîne de caractères en Python et la sortir telle quelle ou dans la direction opposée.
Pour Windows: obtenez une liste de répertoires et de fichiers dans un répertoire spécifique.
[Introduction à Python] Quelle est la différence entre une liste et un taple?
[Exemple d'amélioration de Python] Quel est le site d'apprentissage recommandé pour les débutants en Python?
Débutant Python ~ Arrondissez le Nième chiffre de la virgule décimale et sortie ~ (pour mémo)
[python] Déplacer les fichiers qui remplissent les conditions
[Python] Qu'est-ce que la série pandas et DataFrame?
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
[Python] Récupère le code de caractère du fichier
SublimeText2 et SublimeLinter - Vérification de la syntaxe pour Python3 -
Quelle est la différence entre «pip» et «conda»?
[python] Vérifier les éléments de la liste tous, tous
Qu'est-ce que la «programmation fonctionnelle» et «orientée objet»? Édition Python
La réponse de "1/2" est différente entre python2 et 3
Qu'est-ce que wheezy dans l'image Docker Python?
Wagtail est le meilleur CMS pour Python! (Peut-être)
À propos de la différence entre "==" et "is" en python
Que comparez-vous avec Python et ==?
Liens et mémos de chaînes de code de caractères Python
Qu'est-ce que le tri par godets? Merideme et exemple de code
Archivez et compressez tout le répertoire avec python
Fichiers PDF et sites utiles pour apprendre Python 3
Code pour vérifier le fonctionnement de Python Matplot lib
Convertir le code de caractère du fichier avec Python3
virtualenv Pour le moment, c'est tout!
Que sont les taples et * args python après tout?
Quelle est la différence entre Unix et Linux?
Importez audit.log dans Splunk et vérifiez le comportement lorsque Splunk est démarré pour la première fois.
Vérifiez le temps de traitement et le nombre d'appels pour chaque processus avec python (cProfile)
Il est facile d'exécuter SQL avec Python et de générer le résultat dans Excel