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.
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)
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.
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