Maison >développement back-end >Tutoriel Python >Comment exécuter des commandes multilignes dans une ligne de commande sur une seule ligne ?
Exécuter des commandes multilignes dans une ligne de commande sur une seule ligne
Lors de l'utilisation de l'option -c de Python pour exécuter une boucle sur une seule ligne, importer un module avant la boucle peut entraîner une erreur de syntaxe. Ce problème se pose car la ligne de commande traite l'intégralité de la commande comme une seule ligne de code.
Pour surmonter cette limitation, il existe plusieurs approches :
Utiliser Echo :
<code class="bash">echo -e "import sys\nfor r in range(10): print 'rob'" | python</code>
Cette commande utilise echo pour insérer des sauts de ligne dans la chaîne de commande, que Python interprète ensuite comme plusieurs lignes.
Utilisation d'Exec :
<code class="bash">python -c "exec(\"import sys\nfor r in range(10): print 'rob'\")"</code>
Cette approche utilise la fonction exec pour exécuter dynamiquement une chaîne sous forme de code Python.
Utilisation de sous-shell :
<code class="bash">(echo "import sys" ; echo "for r in range(10): print 'rob'") | python</code>
Cette commande divise la commande en plusieurs lignes à l'aide de sous-shell. Chaque ligne est ensuite exécutée indépendamment.
Utilisation de la réponse de Crist :
<code class="bash">python3 -c "import sys ; for r in range(10) : print('rob')"</code>
Cette approche ajoute un point-virgule avant la boucle for pour indiquer que l'instruction d'importation est une commande distincte.
Utilisation de la réponse de SilentGhost :
<code class="bash">python3 -c "import sys ; x = [print('rob') for r in range(10)][0]"</code>
Cette approche utilise la syntaxe de compréhension de liste de Python pour exécuter la boucle et attribuez le premier résultat à x.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!