Script Python qui crée tous les fichiers UTF-8 sous le dossier avec BOM sans BOM

La raison de le faire

Conversion d'un fichier UTF-8 avec une nomenclature en un fichier UTF-8 sans nomenclature selon les besoins de l'entreprise J'ai créé un script pour tout convertir en même temps.

C'était étonnamment pratique, alors je vais le publier. Veuillez vous référer aux commentaires dans la source pour le contenu du traitement.

scénario

convert.py


#---Outil de suppression de nomenclature
import sys, os, codecs, shutil

#---Obtenir des arguments de ligne de commande
args = sys.argv

#---Obtenir le chemin actuel
current_path = os.getcwd()

#---Définition du nom de fichier temporaire pour le travail
tempfile = ''.join([current_path,'\\tempfile'])

#---Variable de comptage du nombre de dossiers traités
conv_count = 0

print("Script de suppression de fichier de nomenclature")

#---S'il n'y a pas d'argument, une erreur est générée et le processus se termine.
if len(sys.argv) == 1:
    print("Il n'y a pas d'arguments.")
    sys.exit(1)
else:
    #---Obtenez le premier argument
    filepath = args[1]

#---Vérifier l'existence du chemin du fichier d'arguments spécifié
if(os.path.exists(filepath)):

    #--- os.boucle de fonction de marche
    for (current, subfolders, files) in os.walk(filepath):
        
        #---Liste des fichiers acquis(files)Boucle avec
        #---Obtenez individuellement des fichiers à fileName
        for fileName in files:
        
            #---Générer le chemin du fichier à traiter
            target_path = '\\'.join([current, fileName])
            
            #--- UTF-8BOM à UTF-8 Processus de conversion en NOBOM
            
            #---UTF le fichier à traiter-Ouvrir en lecture comme 8BOM
            with codecs.open(target_path, 'r', 'utf_8_sig') as r:
            
                #---Fichiers temporaires UTF-Ouverture en écriture avec 8NOBOM
                with codecs.open(tempfile, 'w', 'utf-8') as w:
                
                    #---Lire ligne par ligne du fichier à traiter(Attribuer à la ligne)
                    for line in r:
                    
                        #---Sortie du contenu de la ligne dans un fichier temporaire en une seule ligne
                        w.write(line)

            #---Processus de remplacement de fichier
            #---Écraser et copier le fichier temporaire dans le fichier à traiter
            shutil.copyfile(tempfile, target_path)
            
            #---Supprimer le fichier temporaire
            os.remove(tempfile)
            
            #Comptez le nombre de cas traités
            conv_count += 1

else:
    #---Si le chemin d'argument spécifié n'existe pas, une erreur est générée et le processus se termine.
    print("Le dossier spécifié n'existe pas.")
    sys.exit(1)

#---Message de fin
print(filepath + "Détruit les fichiers sous celui-ci (converti sans nomenclature)")
print('Nombre de fichiers convertis:{}'.format(conv_count))
sys.exit(0)

Méthode d'exécution

Le script est indépendant du modèle, il fonctionne donc sous Windows, Mac et Linux. Supposons que vous enregistrez votre script Python avec le nom de fichier convert.py.

・ Pour Windows et Linux

> py convert.py dir_path

· Pour Mac

> python convert.py dir_path

Spécifiez dir_path comme chemin complet.

Résumé

Le script créé cette fois analyse récursivement sous le dossier spécifié. Effectue le traitement de tous les fichiers.

Par exemple, cibler un type de fichier spécifique dans le code actuel, Donnez un nom de fichier comme argument et ne faites correspondre que les fichiers Je pense qu'il serait plus pratique d'ajouter l'amélioration du ciblage.

Je pense qu'il existe un moyen plus intelligent de convertir une nomenclature, Python, qui peut écrire un tel traitement avec seulement des instructions de base, Après tout, c'est une langue pratique.

Recommended Posts

Script Python qui crée tous les fichiers UTF-8 sous le dossier avec BOM sans BOM
[Python] Récupérez les fichiers dans le dossier avec Python
Vérifiez quel est le code de caractère pour tous les fichiers sous le répertoire Python et sortie
Obtenez une liste de fichiers dans un dossier avec python sans chemin
[python] Déplacer les fichiers qui remplissent les conditions
Liste tous les fichiers sous le répertoire courant ligne par ligne avec chemin complet
Lire tous les fichiers csv dans le dossier
Télécharger des fichiers sur le Web avec Python
Supprimer tous les fichiers pyc dans le répertoire spécifié
Comment obtenir les fichiers dans le dossier [Python]
Décompressez tous les fichiers zip dans le répertoire actuel
Solution de contournement pour Flask-Mail n'envoyant pas de courrier japonais UTF-8 (Python3)
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
Script pour changer la longueur du son avec REAPER
J'ai écrit un script Python qui exporte tous mes articles à l'aide de l'API Qiita v2
J'ai remplacé le livre de recettes Windows PowerShell par un script python.
Copiez récursivement les fichiers du répertoire directement sous le répertoire en utilisant Python
Créons un script qui s'enregistre avec Ideone.com en Python.
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
Conversion par lots de tous les fichiers xlsx du dossier en fichiers CSV
Histoire que Python a cessé de travailler avec VS Code (Windows 10)
Un ensemble de fichiers de script qui font wordcloud avec Python3
Script Python qui compare le contenu de deux répertoires
[Python] Une fonction qui recherche la chaîne de caractères entière avec une expression régulière et obtient toutes les chaînes de caractères correspondantes.