Python-Skript, das alle UTF-8-Dateien unter dem Ordner mit Stückliste ohne Stückliste erstellt

Der Grund dafür

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.

Skript

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)

Ausführungsmethode

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.

Zusammenfassung

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

Python-Skript, das alle UTF-8-Dateien unter dem Ordner mit Stückliste ohne Stückliste erstellt
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Überprüfen Sie den Zeichencode für alle Dateien im Verzeichnis Python und geben Sie ihn aus
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
[Python] Verschieben Sie Dateien, die die Bedingungen erfüllen
Listen Sie alle Dateien im aktuellen Verzeichnis Zeile für Zeile mit vollständigem Pfad auf
Lesen Sie alle CSV-Dateien im Ordner
Laden Sie mit Python Dateien im Web herunter
Löschen Sie alle pyc-Dateien im angegebenen Verzeichnis
So erhalten Sie die Dateien im Ordner [Python]
Entpacken Sie alle Zip-Dateien im aktuellen Verzeichnis
Problemumgehung für Flask-Mail, die keine japanische UTF-8-Mail sendet (Python3)
Überprüft, ob für alle Dateien im Verzeichnis Python eine bestimmte Zeichenfolge vorhanden ist, und gibt die Zielzeile aus
Skript zum Ändern der Klanglänge mit REAPER
Ich habe ein Python-Skript geschrieben, das alle meine Beiträge mit der Qiita API v2 exportiert
Ich habe das Windows PowerShell-Kochbuch durch ein Python-Skript ersetzt.
Kopieren Sie mit Python rekursiv Dateien aus dem Verzeichnis direkt unter dem Verzeichnis
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Erstellen eines Python-Skripts, das die e-Stat-API unterstützt (Version 2)
Batch-Konvertierung aller XLSX-Dateien im Ordner in CSV-Dateien
Die Geschichte, dass Python nicht mehr mit VS Code (Windows 10) arbeitet
Eine Reihe von Skriptdateien, die Wordcloud mit Python3 ausführen
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
[Python] Eine Funktion, die die gesamte Zeichenfolge mit einem regulären Ausdruck durchsucht und alle übereinstimmenden Zeichenfolgen abruft.