Afin de lancer le jeu avec un émulateur appelé Redream, j'ai dû décompresser le fichier compressé pour chaque répertoire, j'ai donc créé un lot.
Installez le package pour décompresser le fichier 7z. Installez 7z avec la commande suivante.
sudo apt-get install -y p7zip-full
Créez le code Python suivant et enregistrez-le dans le fichier batch.py.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import io
import os
import glob
arr = glob.glob("*7z")
#print(arr)
path_w = '7z.sh'
with open(path_w, mode='w') as f:
for str in arr:
dir = str.replace("[GDI] ","").replace("[CDI] ","").replace(".7z","").replace("'","")
tmpstr = str.replace("'","").replace(",","")
os.rename("./" + str , "./" + tmpstr)
try:
if not os.path.exists(dir):
cmds = "7z x '" + tmpstr + "' -o'" + dir + "'\n"
dels = "rm -rf '" + tmpstr + "'\n"
#print(cmds)
#print(dels)
f.write(cmds)
f.write(dels)
except OSError:
print("Error: " + dir)
Je n'ai pas écrit de commentaire sur la source, alors j'aimerais l'expliquer ici.
#!/usr/bin/python
# -*- coding: utf-8 -*-
#C'est la partie qui déclare le package car il utilise la méthode fournie.
import io
import os
import glob
#Enregistrez uniquement les fichiers avec l'extension "7z" dans le répertoire actuel dans le tableau.
arr = glob.glob("*7z")
#L'impression suivante est le code pour vérifier le contenu de la matrice enregistrée.
# print(arr)
#Décompressez et supprimez les fichiers compressés dans des fichiers de script shell
#Spécifie le nom du fichier de script shell dans lequel la commande est enregistrée.
path_w = '7z.sh'
#Ouvrez le fichier de script shell en mode écriture
with open(path_w, mode='w') as f:
#Créez une commande de décompression / suppression pour chaque fichier "7z".
for str in arr:
#Créez le nom du répertoire à décompresser à partir du nom du fichier compressé.
#Supprimez les chaînes de caractères inutiles dans le nom du répertoire.
dir = str.replace("[GDI] ","").replace("[CDI] ","").replace(".7z","").replace("'","")
#Si le nom de fichier et le nom de répertoire ont les chaînes de caractères suivantes, la réponse échouera.
#Supprimez le caractère. Et remplacez également le nom du fichier.
tmpstr = str.replace("'","").replace(",","")
os.rename("./" + str , "./" + tmpstr)
try:
#Si le nom du répertoire n'existe pas, effectuez le traitement suivant.
if not os.path.exists(dir):
#Cette commande décompresse le fichier compressé.
cmds = "7z x '" + tmpstr + "' -o'" + dir + "'\n"
#Cette commande supprime le fichier décompressé.
dels = "rm -rf '" + tmpstr + "'\n"
#C'est le code pour confirmer la commande.
#print(cmds)
#print(dels)
#Enregistrez la commande dans un fichier de script shell.
f.write(cmds)
f.write(dels)
except OSError:
#Sortie lorsqu'une erreur liée au répertoire se produit.
print("Error: " + dir)
Exécutez le code Python avec la commande suivante: Une fois exécuté, un fichier "7z.sh" sera généré.
pi@raspberrypi:~/Downloads/redream/rom $ python batch.py
Vérifiez le contenu du fichier avec la commande suivante. Vous pouvez voir que la commande de décompression / suppression est générée pour chaque nom de fichier compressé.
pi@raspberrypi:~/Downloads/redream/rom $ cat 7z.sh
7z x '[GDI] XXXXXXXX.7z' -o'XXXXXXXX'
rm -rf '[GDI] XXXXXXXX.7z'
7z x '[CDI] XXXXXXXX.7z' -o'XXXXXXXX'
rm -rf '[CDI] XXXXXXXX.7z'
Exécutez le fichier de script shell avec la commande suivante: Une fois exécuté, l'écran de décompression du fichier compressé s'affiche. Lorsque l'exécution est terminée, vous pouvez voir que tous les fichiers compressés ont été supprimés. S'il est possible que le nom de fichier soit arrêté en raison d'une erreur de chaîne de caractères inattendue, Dans ce cas, ajoutez un remplacement au traitement du nom de fichier / nom de répertoire. Ensuite, vous devriez pouvoir le résoudre sans aucun problème.
pi@raspberrypi:~/Downloads/redream/rom $ sh 7z.sh
Si la capacité de la carte SD est insuffisante, la décompression du fichier peut échouer, donc Faites attention. (Lol)
Avec cela, il était facile de mettre le jeu dans Retropie OS, Ensuite, la spécification de GDI / CDI et le fichier image de prévisualisation restent dans game.xml. Lors de l'exécution sur Raspbian, il n'est pas nécessaire de spécifier le game.xml ci-dessus. Il était difficile de compresser et de décompresser manuellement, alors je l'ai fait. Cela a-t-il été utile? La gestion des exceptions fait un peu défaut, mais veuillez l'ajouter si nécessaire.
Recommended Posts