Sortieren von Bilddateien mit Python (3)

Vorwort

Letztes Mal habe ich die Generierung der Datei der Löschzielliste abgeschlossen. Der Inhalt der Datei sieht folgendermaßen aus.

\TMP\200104\delete.txt


C:\TMP\IMG_2607(1).jpg
C:\TMP\IMG_2608(1).jpg

\TMP\200105\delete.txt


C:\TMP\IMG_2610(1).jpg
C:\TMP\IMG_2610(2).jpg
C:\TMP\IMG_2611(1).jpg

In jedem Jahr / Monat-Ordner (JJJJM) befindet sich delete.txt, der den vollständigen Pfad der Datei enthält, die Sie zeilenweise löschen möchten. Lesen Sie diese also einfach und löschen Sie sie. Da es sich noch in der Testphase befindet, werde ich den Prozess für den Testordner schreiben.

Schreiben Sie in Python 3

Python : 3.8.3

DeleteAll.py


import glob
import os

if __name__ == "__main__":
    files = glob.glob("C:\\tmp\\**\\delete.txt", recursive=True)

    for file in files:
        with open(file, "r") as f:
            for line in f.readlines():
                os.remove(line.strip())

Mr. Glob. Warum bleibt '\ n'am Ende beim Lesen mit readlines ()? (Ein wenig störend)

Schreiben Sie in C

C# : 8.0(Microsoft Visual Studio Community 2019)

DeleteAll.cs


using System;
using System.IO;
using System.Text;

namespace DeleteAll
{
    class DeleteAll
    {
        static void Main()
        {
            var files = Directory.GetFiles(@"c:\tmp", "delete.txt", SearchOption.AllDirectories);

            foreach (var file in files)
            {
                foreach (var line in File.ReadAllLines(file, Encoding.GetEncoding("Shift-JIS")))
                {
                    File.Delete(line);
                }
            }
        }
    }
}

Normalerweise denke ich nicht darüber nach, aber als ich es neben Python stellte, schienen die Klammern sehr störend zu sein ...

Schreiben Sie in VB6 (mit FileSystemObject)

VisualBasic : 6.0

DeleteAll.bas


Option Explicit

Private colFiles As Collection

Public Sub Main()
    Set colFiles = New Collection
    Call GetFiles("C:\TMP\")
    Call DeleteFiles(colFiles)
End Sub

Private Sub GetFiles(ByVal strSearchPath As String)
    Dim FSO As FileSystemObject

    Set FSO = New FileSystemObject

    Dim objSubFolder As Folder

    For Each objSubFolder In FSO.GetFolder(strSearchPath).SubFolders
        Call GetFiles(objSubFolder.Path)
    Next

    Dim objFile As file

    For Each objFile In FSO.GetFolder(strSearchPath).files
        If LCase(objFile.Name) = "delete.txt" Then
            Call colFiles.Add(FSO.BuildPath(strSearchPath, objFile.Name))
        End If
    Next
End Sub

Private Sub DeleteFiles(ByVal files As Collection)
    Dim FSO As FileSystemObject
    Dim vntFile As Variant

    Set FSO = New FileSystemObject

    For Each vntFile In files
        With FSO.GetFile(vntFile).OpenAsTextStream(ForReading)
            Do
                Kill .ReadLine()
            Loop Until (.AtEndOfLine())
        End With
    Next
End Sub

In der altmodischen ungarischen Notation. Es ist sehr mühsam, die rekursive Suche selbst zu implementieren. Daher ist es wichtig, ohne Verwendung von FileSystemObject zu binden. Die Variablendeklaration in GetFiles () wird geschrieben, um Dim zu deklarieren, kurz bevor sie angezeigt wird. In der alten VB6-Quelle ist es jedoch üblich, die Deklaration zu Beginn der Methode gemeinsam zu schreiben. Ich denke, es ist der Stil von Leuten, die C-> VB flossen, aber ich sehe oft Shit-Code, der 500 Zeilen pro Methode nur für solche Quellen enthält.

Versuchen Sie, in eine Batch-Datei zu schreiben

DeleteAll.bat


@echo off
cd \tmp
for /f "usebackq" %%i in (`dir /s /b delete.txt`) do (for /f %%j in (%%i) do del %%j)

Wie einfach eine Batchdatei ist! Stattdessen ist das Format etwas esoterisch.

Nachwort

Damit ist dieser Fall abgeschlossen. Was machen wir jetzt als nächstes?

Recommended Posts

Sortieren von Bilddateien mit Python (2)
Sortieren von Bilddateien mit Python (3)
Bilddateien mit Python sortieren
Bildverarbeitung mit Python
Bildverarbeitung mit Python (Teil 2)
Bildbearbeitung mit Python OpenCV
Sortieren Sie große Dateien mit Python
Bildverarbeitung mit Python (Teil 1)
Tweet mit Bild in Python
Integrieren Sie PDF-Dateien in Python
Bildverarbeitung mit Python (3)
TXT-Dateien mit Python lesen
[Python] Bildverarbeitung mit Scicit-Image
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
Schneiden Sie ein Bild mit Python aus
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Extrahieren Sie Zip-Dateien rekursiv mit Python
Bearbeiten von EAGLE .brd-Dateien mit Python
Mit OpenSSL mit Python 3 verschlüsselte Dateien entschlüsseln
Die Bildverarbeitung mit Python 100 klopft an die Binärisierung Nr. 3
Lassen Sie uns mit Python Image Scraping durchführen
Behandeln Sie Excel-CSV-Dateien mit Python
Lesen Sie Dateien parallel zu Python
Finden Sie Bildähnlichkeit mit Python + OpenCV
100 Bildverarbeitung mit Python Knock # 2 Graustufen
Sende Bild mit Python und speichere mit PHP
Sortieren von Dateien nach Namenskonvention mit Python
Erzeugung von Verlaufsbildern mit Python [1] | np.linspace
[Python] Mit OpenCV können Sie problemlos Bilddateien mit Seriennummern lesen
Grundlagen der binärisierten Bildverarbeitung durch Python
Bildverarbeitung mit Python 100 Knock # 10 Medianfilter
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Python-Bildverarbeitung
HTML-Mail mit Bild zum Senden mit Python
Statistik mit Python
Erstellen Sie mit Python + PIL ein Dummy-Image.
Python mit Go
100 Bildverarbeitung mit Python Knock # 8 Max Pooling
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
AES256 mit Python
Verwenden Sie die Verschlüsselung der Verschlüsselungsbibliothek mit dem Python-Image von Docker
Bildverarbeitung mit Python & OpenCV [Tonkurve]
Getestet mit Python
Bildverarbeitung mit Python 100 Knock # 12 Bewegungsfilter
Python beginnt mit ()
Bildaufnahme von der Kamera mit Python + OpenCV
[Python] Ich habe einen Bildbetrachter mit einer einfachen Sortierfunktion erstellt.
Lesen und Schreiben von JSON-Dateien mit Python
Laden Sie mit Python Dateien im Web herunter
[Easy Python] Lesen von Excel-Dateien mit openpyxl
mit Syntax (Python)
Bingo mit Python
Zeichnen mit Matrix-Reinventor von Python Image Processing-
Zundokokiyoshi mit Python
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow