Tri des fichiers image avec Python (3)

Préface

Dernière fois, j'ai fini de générer le fichier de la liste des cibles de suppression. Le contenu du fichier ressemble à ceci.

\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

Il y a delete.txt dans chaque dossier année / mois (aaaamm) qui contient le chemin complet du fichier que vous souhaitez supprimer ligne par ligne, alors lisez-le et supprimez-le. Puisqu'il est encore au stade de test, j'écrirai le processus pour le dossier de test.

Ecrire en 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())

M. glob. Pourquoi '\ n'reste-t-il à la fin lors de la lecture avec readlines ()? (Un peu dérangeant)

Ecrire en 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);
                }
            }
        }
    }
}

Je n'y pense pas d'habitude, mais quand je l'ai mis côte à côte avec Python, les parenthèses semblaient très dérangeantes ...

Écrire dans VB6 (en utilisant 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

Dans la notation hongroise à l'ancienne. Il est très difficile d'implémenter la recherche récursive par vous-même. Avec cela, il est important de se lier sans utiliser FileSystemObject. La déclaration de variable dans GetFiles () est écrite pour déclarer Dim juste avant son apparition, mais dans l'ancienne source VB6, il est habituel d'écrire la déclaration collectivement au début de la méthode. Je pense que c'est le style des gens qui ont coulé C-> VB, mais je vois souvent du code de merde qui a 500 lignes par méthode uniquement pour les sources écrites comme ça.

Essayez d'écrire dans un fichier batch

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)

Comme un fichier batch est simple! Au lieu de cela, le format est un peu ésotérique.

Épilogue

Ceci complète ce cas. Maintenant, qu'allons-nous faire ensuite?

Recommended Posts

Tri des fichiers image avec Python (2)
Tri des fichiers image avec Python (3)
Tri des fichiers image avec Python
Traitement d'image avec Python
Traitement d'image avec Python (partie 2)
Édition d'image avec python OpenCV
Trier de gros fichiers avec python
Traitement d'image avec Python (partie 1)
Tweet avec image en Python
Intégrez des fichiers PDF avec Python
Traitement d'image avec Python (3)
Lire des fichiers .txt avec Python
[Python] Traitement d'image avec scicit-image
Extraire le tableau des fichiers image avec OneDrive et Python
Découpez une image avec python
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
Extraire récursivement des fichiers zip avec python
Manipulation des fichiers EAGLE .brd avec Python
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Traitement d'image avec la binarisation Python 100 knocks # 3
Faisons du scraping d'images avec Python
Gérer les fichiers Excel CSV avec Python
Lire des fichiers en parallèle avec Python
Trouver la similitude d'image avec Python + OpenCV
100 traitement d'image par Python Knock # 2 Échelle de gris
Envoyer l'image avec python et enregistrer avec php
Tri des fichiers par convention de dénomination à l'aide de Python
Génération d'images dégradées avec Python [1] | np.linspace
[Python] Lecture facile des fichiers image du numéro de série avec OpenCV
Bases du traitement d'images binarisées par Python
Traitement d'image par Python 100 knock # 10 filtre médian
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Lire un fichier audio à partir de Python avec interruption
traitement d'image python
mail html avec image à envoyer avec python
Statistiques avec python
Créez une image factice avec Python + PIL.
Python avec Go
100 traitement d'image avec Python Knock # 8 Max Pooling
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
AES256 avec python
Utiliser le chiffrement de la bibliothèque de chiffrement avec l'image Python de Docker
Traitement d'image avec Python et OpenCV [Tone Curve]
Testé avec Python
Traitement d'image par Python 100 knock # 12 motion filter
python commence par ()
Acquisition d'images depuis une caméra avec Python + OpenCV
[Python] J'ai créé une visionneuse d'images avec une fonction de tri simple.
Lire et écrire des fichiers JSON avec Python
Télécharger des fichiers sur le Web avec Python
[Easy Python] Lecture de fichiers Excel avec openpyxl
avec syntaxe (Python)
Bingo avec python
Dessin avec Matrix-Reinventor of Python Image Processing-
Zundokokiyoshi avec python
Traitez facilement des images en Python avec Pillow