0
votes

Script Shell pour appeler le programme Python avec des arguments changeants

J'ai des images dans un sous-dossier. Laissons le dossier images

J'ai un programme Python qui prendra des arguments d'image du dossier un par un, les images sont nommées dans l'ordre séquentiel (1.jpg, 2.jpg, 3.jpg, etc.).

L'appel au programme est: python prog.py 1.jpg

Quel sera un script shell pour l'automatiser?

S'il vous plaît demander des informations supplémentaires.


2 commentaires

Prenez d'abord tous les noms de fichiers du dossier. Exécutez pour en boucle pour exécuter le script Python pour tous les fichiers.


@HARSHABIYANI SIR, je n'ai aucune expérience dans l'écriture de scripts shell


3 Réponses :


1
votes

Essayez ceci dans le dossier contenant des images /:

pour i dans images / *. JPG; fais python prog.py $ i fait


1 commentaires

Plutôt que des blocs surrounds de code avec des backtsks, il est plus facile de sélectionner le code et de cliquer sur le bouton {} dans la barre d'outils de formatage près de gras et italique . Ou vous pouvez mettre 4 espaces au début de chaque ligne.



0
votes
cd IMG_DIR
for item in [0-9]*.jpg
do
 python prog.py $item
 echo "Item processed : $item"
done
You can also pass image dir as a shellscript argument

2 commentaires

Depuis que nous parlons de Posix Shell ici, ARTICLE $ $ doit être cité lorsqu'il est passé à Python, sinon il se casserait si le nom de l'image a des espaces intégrés.


De plus, étant donné que l'OP n'est intéressé que par les noms de fichiers JPG commençant par un chiffre, la boucle doit lire pour l'élément dans [0-9] *. JPG



0
votes

Vous pouvez les faire tous en parallèle très simplement avec gnu parallèle fort> comme ceci: xxx pré>

ou, si votre python écrit sur le répertoire actuel: P >

cd images
parallel python prog.py ::: *.jpg


0 commentaires