[Python] Divisez les albums de Switch en dossiers par jeu

Aperçu

Aimez-vous le jeu?

Apparemment, Sotono est méprisé par une connaissance qui a joué à Splatoon 2 pendant 1000 heures à Joycon. Je n'ai pas éclaboussé ces jours-ci, mais quand je joue à d'autres jeux, j'ai eu des ** grincements et des vidéos, et le SD est devenu fou **. ~~ Acheter un nouveau SD ~~

Cela ne devrait pas être le cas, mais je ne veux pas l'effacer ... C'est pourquoi je transfère la carte SD sur un PC et gère le sukusho, mais je n'aime pas ça car il est ** classé uniquement par date ** ...

C'est pourquoi si vous regardez de près les noms de fichiers, différents ID sont attribués à chaque jeu, il est donc plus facile de gérer personnellement si vous l'utilisez pour diviser les dossiers par jeu!

Faisons-le maintenant.

Analyse des noms d'images

Les noms de fichiers enregistrés dans l'album Switch sont généralement au format suivant.

[Date] - [Game ID]. [Extension]

--Date et l'heure --Comme vous pouvez le voir, il y a trop de chiffres, donc je pense qu'il enregistre jusqu'à virgule secondes (approprié) --Identifiant de jeu ―― Un identifiant différent est attribué à chaque plat principal et à chaque jeu cette fois.

À part

  • Puisqu'il fait référence à la date et à l'heure réglées en Swtich, il sera décalé de ce montant si vous faites une enquête sur le temps, alors faites attention au voyage dans le temps. --- Dans le mystérieux dossier appelé ʻExtra`, les vidéos réalisées avec Smash Bra sont sauvegardées, donc soyez prudent car l'emplacement de sauvegarde a été changé.

En passant, quand je l'ai analysé, j'ai trouvé que ** différents ID étaient attribués à chaque jeu **, donc je vais l'utiliser pour les trier immédiatement.

Ecrire le tri en Python

~~ Parce que je ne peux utiliser que Python ... ~~

Lier l'ID du jeu et le titre du jeu

Vous pouvez utiliser CSV ou quoi que ce soit, alors liez l'ID du jeu avec le nom du jeu. Si vous ne le faites pas, vous finirez par gérer avec un identifiant attribué au hasard, donc c'est difficile à comprendre ...

C'est pourquoi j'étais stupide et fou, alors j'ai décidé de le gérer avec un dictionnaire. ~~ C'est ennuyeux à utiliser autour de CSV ... ~~

dict = {
    'hogehoge': 'Splatoon2',
    'fugafuga': 'Grande bagarre Smash Brothers SP',
}

Production de tri

Assemblez la hiérarchie de dossiers suivante de manière appropriée

.
└── (Nom de dossier arbitraire A) 
    └── sw_hogehoge(Titre du jeu)
        ├── img
            └── ~.jpg
        └── movie
            └── ~.mp4

Avec cela, si vous mettez le contenu du dossier ʻAlbum dans le commutateur tel qu'il est dans * 1`, le reste sera trié.

Le flux général est comme ça.

--Déplacez uniquement les images et les fichiers vidéo de l'album vers le dossier Après

  • Récupérez les images dans le dossier Après et triez-les dans les dossiers correspondants --Si le dossier n'existe pas, créez-en un nouveau
import glob
import re
import os
import shutil

PYDIR = os.path.dirname(os.path.abspath(__file__))
INBOX = os.path.dirname(PYDIR)
INBOX_AFTER = f'{INBOX}/After'

ARCHIVE = os.path.dirname(INBOX)
MOV = '/movie'
IMG = '/img'


def main():

    # -----Passer de l'album à après
    before = f'{INBOX}/Album/????/??/??/*'
    for i in glob.glob(before):
        shutil.move(i, INBOX_AFTER)

    # -----Parcourez After vers le dossier du jeu
    dir_game = ARCHIVE + '/sw_'
    dir_inbox_glob = f'{INBOX_AFTER}/*'

    for file in glob.glob(dir_inbox_glob):
        for id in fold_id.dict:
            if id in file:
                to = dir_game + fold_id.dict[id]

                #Créer s'il n'y a pas de dossier de jeu
                if os.path.exists(to) is False:
                    FOLD_NAMES = ('', MOV, IMG)
                    [os.mkdir(to + fold_name) for fold_name in FOLD_NAMES]

                to += MOV if '.mp4' in file else IMG
                shutil.move(file, to)


if __name__ == '__main__':
    main()

Une fois exécuté, un dossier sera créé dans ʻArbitrary A` avec la configuration suivante.

.
└── sw_hogehoge(Titre du jeu)
    ├── img
        └── ~.jpg
    └── movie
        └── ~.mp4

Personnalisez la hiérarchie des dossiers comme vous le souhaitez.

Créez le système de gestion de captures d'écran le plus puissant uniquement pour vous! !!

C'est pourquoi j'ai essayé les bases de la gestion de fichiers Python avec Switch. Cette personne a-t-elle vraiment joué avec Python pendant deux ans? C'est fini, je retourne sur l'île inhabitée ...

Recommended Posts

[Python] Divisez les albums de Switch en dossiers par jeu
Divisez en équipes par optimisation de combinaison
Diviser le japonais (katakana) en syllabes [Python]
Changer de version de Python
Diviser en équipes par optimisation de combinaison (minimiser l'écart moyen)
Diviser en équipes par optimisation de combinaison (méthode de cuisson)