Konvertieren einer UTF-8-Datei mit einer Stückliste in eine UTF-8-Datei ohne Stückliste, wie vom Unternehmen benötigt Ich habe ein Skript erstellt, um alles auf einmal zu konvertieren.
Es war unerwartet praktisch, also werde ich es veröffentlichen. Den Verarbeitungsinhalt entnehmen Sie bitte den Kommentaren in der Quelle.
convert.py
#---Werkzeug zum Entfernen von Stücklisten
import sys, os, codecs, shutil
#---Befehlszeilenargumente abrufen
args = sys.argv
#---Aktuellen Pfad abrufen
current_path = os.getcwd()
#---Festlegen des temporären Dateinamens für die Arbeit
tempfile = ''.join([current_path,'\\tempfile'])
#---Variable zum Zählen der Anzahl der bearbeiteten Fälle
conv_count = 0
print("Skript zum Entfernen von Stücklistendateien")
#---Wenn kein Argument vorhanden ist, wird ein Fehler ausgegeben und der Prozess beendet.
if len(sys.argv) == 1:
print("Es gibt keine Argumente.")
sys.exit(1)
else:
#---Holen Sie sich das erste Argument
filepath = args[1]
#---Überprüfen Sie, ob der angegebene Pfad für die Argumentdatei vorhanden ist
if(os.path.exists(filepath)):
#--- os.Walk-Funktionsschleife
for (current, subfolders, files) in os.walk(filepath):
#---Liste der erfassten Dateien(files)Schleife mit
#---Holen Sie sich individuell von Dateien zu Dateiname
for fileName in files:
#---Generieren Sie den zu verarbeitenden Dateipfad
target_path = '\\'.join([current, fileName])
#--- UTF-8BOM zu UTF-8 Konvertierungsprozess in NOBOM
#---UTF die zu verarbeitende Datei-Im Lesemodus als 8BOM öffnen
with codecs.open(target_path, 'r', 'utf_8_sig') as r:
#---Temporäre UTF-Dateien-Öffnen Sie im Schreibmodus mit 8NOBOM
with codecs.open(tempfile, 'w', 'utf-8') as w:
#---Zeile für Zeile aus der zu verarbeitenden Datei lesen(Der Linie zuweisen)
for line in r:
#---Geben Sie den Inhalt der Zeile in einer temporären Datei in einer Zeile aus
w.write(line)
#---Dateiersetzungsprozess
#---Überschreiben und kopieren Sie die temporäre Datei in die zu verarbeitende Datei
shutil.copyfile(tempfile, target_path)
#---Temporäre Datei löschen
os.remove(tempfile)
#Zählen Sie die Anzahl der bearbeiteten Fälle hoch
conv_count += 1
else:
#---Wenn der angegebene Argumentpfad nicht vorhanden ist, wird ein Fehler ausgegeben und der Prozess beendet.
print("Der angegebene Ordner existiert nicht.")
sys.exit(1)
#---Nachricht beenden
print(filepath + "Zerstörte die Dateien darunter (konvertiert ohne Stückliste)")
print('Anzahl der konvertierten Dateien:{}'.format(conv_count))
sys.exit(0)
Das Skript ist modellunabhängig und funktioniert daher unter Windows, Mac und Linux. Angenommen, Sie speichern Ihr Python-Skript unter dem Dateinamen convert.py.
・ Für Windows und Linux
> py convert.py dir_path
・ Für Mac
> python convert.py dir_path
Geben Sie dir_path als vollständigen Pfad an.
Das diesmal erstellte Skript scannt rekursiv unter dem angegebenen Ordner. Führt die Verarbeitung aller Dateien durch.
Wenn Sie beispielsweise auf einen bestimmten Dateityp im aktuellen Code abzielen, Geben Sie einen Dateinamen als Argument an und stimmen Sie nur mit Dateien überein Ich denke, es wäre bequemer, die Verbesserung des Targetings hinzuzufügen.
Ich denke, es gibt eine intelligentere Möglichkeit, Stücklisten zu konvertieren. Python, das eine solche Verarbeitung nur mit grundlegenden Anweisungen schreiben kann, Immerhin ist es eine bequeme Sprache.
Recommended Posts