0
votes

Comment passer des paramètres de Xargs au script Python?

J'ai Command.list Fichier avec les paramètres de commande pour mon script Python my_script.py qui ont 3 paramètres.

une ligne dont on ressemble à:

-sc 4

On dirait que cela ne fonctionne pas comme ceci car les paramètres doivent être divisés?

commandement de chat.list | xargs -i {} python3 my_script.py {}

Comment diviser la chaîne en paralètres et transmettez-la au script Python?


0 commentaires

3 Réponses :


1
votes

Pas sûr, qu'est-ce que vous essayez de faire avec xargs -i {} python3 my_script.py {} code> là. Mais cherchez-vous,

$ cat file
<path1> <path2> -sc 4
....
<path1n> <path2n> -sc 4

$ while read -r path1 path2 unwanted unwanted; do python3 my_script.py "$path2" ; done<file


1 commentaires

Oui, ça marche: pendant la lecture -r Path1 Path2; do python3 show_mouth_landmarks.py $ path1 $ path2 -Sc 4; fait



2
votes

La documentation de -i code> de man xargs code>

-I Remplacer-str>
Remplacez les occurrences de remplacement-Str dans les arguments initiaux avec les noms lus à partir de l'entrée standard. En outre, Les blancs non notés ne terminent pas les éléments d'entrée; Au lieu de cela, le séparateur est le personnage de la nouvelle ligne. strong> implique -x et -l 1. p> BlockQuote>

Ce que vous voulez est P>

xargs -a command.list -L1 python3 my_script.py


2 commentaires

Pourquoi l'option -x est-elle nécessaire?


@mrglomoom mon mauvais, ce n'est pas nécessaire. -l active automatiquement -x . Même si ce n'est pas que vous n'en auriez probablement pas besoin. C'est une sauvegarde à avorter et à avertir dans les cas où toutes les options de la ligne actuelle ne peuvent être utilisées dans un appel en raison de la limite arg_max . Par exemple dans SEQ -S '' 9999999 | XARGS -XL1 ECHO Vous obtenez un avertissement qu'il existe trop d'arguments dans une ligne pour s'intégrer à un seul appel.



2
votes

Qu'en est-il de commandement de chat.list | xargs -l 1 python3 my_script.py ? Cela passera une ligne ( -l 1 ) à la fois de votre script.


0 commentaires