[PYTHON] Que faire si vous ne pouvez pas trier les fichiers avec des indices

Bonjour est blanc

Quand j'essaye de trier un tel fichier, je peux bien le trier dans le fichier, mais quand j'essaye de le traiter avec Python etc.

L'ordre peut être différent de ce que vous attendiez. .. ..

Je suis coincé là-dedans, alors je vais l'écrire comme mémo pour moi-même.

approche

Mettez un 0000 supplémentaire avant l'indice. Cela résoudra le problème.

Cependant, réécrire tous les noms manuellement est un problème, alors laissons tout à Python.

En principe, envisagez d'ajouter uniquement les indices du fichier d'origine.

ex)img32.png ⇒ img00032.png

Connaissances requises

  1. Obtenez le nom du fichier (en utilisant os)
  2. Obtenir des indices à partir des noms (utilisation d'expressions régulières)
  3. Renommez le fichier (à l'aide de shutil)

est. C'est facile, alors terminons-le un par un.

1. Obtenez le nom du fichier (os)

Utilisez quelque chose appelé os pour obtenir le nom du fichier.

    import os
    file_dl = './File/'
    res = os.listdir(file_dl)

Avec cela seul, j'ai pu obtenir tous les noms de choses dans le fichier qui était dans le fichier.

2. Acquisition d'indices à partir de noms (expression régulière re)

Ensuite, récupérons l'indice du nom de fichier obtenu.

    import re
    file_index = re.search(r'\d{1,}', 'img012.png').group()

Ici, seuls les nombres sont obtenus à partir de la chaîne de caractères en utilisant ce que l'on appelle une expression régulière.

Dans ce cas, seul 012 est extrait de img012.png et stocké dans file_index.

3 Déplacer les fichiers (shutil)

Enfin, renommez-le et enregistrez-le en utilisant shutil. Tout ce que je fais, c'est le renommer et le remettre à son emplacement d'origine.

    import shutil
    shutil.move(old_path,new_path)

En faisant cela, j'ai pu déplacer ce qui se trouvait dans old_path vers new_path.

Résumé

Si vous connectez ce qui précède

    import os
    import shutil
    
    file_dl = './File/'
    name = 'img_name'
    #Obtenez le nom du dossier dans le fichier
    res = os.listdir(file_dl)
    
    #Extrayez les fichiers un par un à l'aide de l'instruction for.
    for target_name in res:
        #Combiner le chemin du fichier et le nom du fichier
        target_dl = file_dl + target_name
        #Extraire uniquement les indices à l'aide d'expressions régulières
        target_index = int(re.search(r'\d{1,}', target_name).group())
        #Créer un nouveau nom de fichier
        target_new_name = name+str("{0:05d}".format(target_index))+'.png'
        #Renommez le fichier et enregistrez-le à nouveau
        shutil.move(target_dl,file_dl+target_new_name)

Recommended Posts

Que faire si vous ne pouvez pas trier les fichiers avec des indices
Que faire si vous ne pouvez pas installer pyaudio avec pip #Python
Que faire lorsque le shell pipenv devient impossible
Que faire si vous ne pouvez pas construire un projet avec Maven
Que faire si l'option -f de grep ne fonctionne pas
Que faire si vous ne pouvez pas installer avec pip dans l'environnement babun
Que faire si vous ne pouvez pas installer mysqlclient
Que faire si vous ne pouvez pas vous connecter en tant que root
Que faire si vous ne pouvez pas utiliser le WiFi sous Linux
Que faire si vous obtenez une erreur de décodage Unicode avec l'installation de pip
Que faire si vous ne pouvez pas utiliser la poubelle dans Lubuntu 18.04.
Que faire si PDO n'est pas trouvé dans Laravel ou CakePHP
Que faire si vous ne parvenez pas à envoyer un e-mail à Yahoo avec Python.
Que faire si vous ne pouvez pas utiliser la recherche de grille de sklearn en Python
Que faire si vous vous perdez dans la référence de fichier avec FileNotFoundError
Que faire lorsque TypeError se produit au minimum et au maximum de numpy
Que faire si vous obtenez Impossible de récupérer l'URL 443 avec pip
Aucun module nommé Que faire si vous obtenez "libs.resources"
ModuleNotFoundError: No module Que faire si vous obtenez 'sensorflow.contrib'
Liens pour faire ce que vous voulez avec Sublime Text
Ce que vous ne pouvez pas faire avec hstack ou vstack avec dstack
swapon failed: Que faire si vous vous fâchez contre l'opération non autorisée
Que faire si vous obtenez une erreur lors de l'installation de python avec pyenv
[AWS] Que faire lorsque vous souhaitez piper avec Lambda
Que faire si vous obtenez une erreur OpenSSL lors de l'installation de Python 2 avec pyenv
Que faire avec l'installation de Magics
Que faire si vous êtes accro aux codes de caractères Windows
Que faire si Combinaisons devient «couverture inconnue»
Que faire avec la sortie de PYTHON?
Comment installer et utiliser pyenv, que faire si vous ne pouvez pas changer de version de Python
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
Remède facile lorsque vous perdez votre paire de clés EC2
Python | Ce que vous pouvez faire avec Python
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Que faire si vous obtenez une erreur non définie lorsque vous essayez d'utiliser pip avec pyenv
Que faire si vous obtenez moins zéro en Python
Que faire si Intellisense ne fonctionne pas avec Anaconda + VSCode + Tensorflow2.1
Que faire lorsque vous obtenez "Je ne peux pas voir le site !!!!"
Ce que vous pouvez faire avec l'API vol.1
Ce que vous pouvez faire avec des compétences en programmation
Résumons ce que vous voulez faire.
Que faire si ipython et python démarrent avec des versions différentes
Que faire si vous vous fâchez avec TensorFlow v2 sans l'attribut "app"
Que faire si vous êtes bloqué pendant l'installation d'Anaconda sur Linux
Que faire si le mnist d'exemple Chainer (Windows) se termine par WinError 183.
Que faire si l'installation de pyenv ne se poursuit pas avec une erreur
Que faire si le serveur ne démarre pas avec python manage.py runserver
Que faire si une erreur se produit lors de l'importation de numpy avec VScode
Que faire si vous obtenez une erreur lors du chargement de mnist
Que faire si pipreqs aboutit à UnicodeDecodeError
Que faire si vous obtenez un avertissement "Mauvaise plateforme Python" lors de l'utilisation de Python avec l'EDI NetBeans
Que faire lorsque vous vous fâchez avec "Value Error: unknown local: UTF-8" dans python manage.py syncdb
Que faire si pip ne peut pas être installé
Que faire si l'autocomplete-python d'atome ne fonctionne pas
Que faire si Docker-sync cesse soudainement de fonctionner