Désolé je suis un peu un noob à ceci:
En gros, j'ai téléchargé ce paquet qui traite les fichiers texte exécutés depuis le terminal, mais la commande dont j'ai besoin prend deux arguments. J'ai aussi besoin de le faire plusieurs fois (plus de 5000).
J'ai besoin de récupérer ces arguments avec un script python, et je peux le répéter plusieurs fois en utilisant python. Pourrais-je donc obtenir les arguments dans le script python, exécuter la ligne de commande et la mettre en boucle? Comment?
Merci!
Voici un poisson ...
import popen2, sys
def loopy_subprocess(arga, argb, iterations, command = 'echo'):
for i in range(int(iterations)):
p = popen2.Popen4((command, arga, argb))
p.wait()
print(p.fromchild.readlines())
if __== '__main__':
try:
arga = sys.argv[1]
argb = sys.argv[2]
iterations = sys.argv[3]
except:
print("You didn't supply enough arguments\n"+\
"Usage: python script.py arga argb iterations\n"+\
"Warning - unsafe. No input validation and doesn't account for spaces in arguments\n"+\
"Optionally supply the command to be run as a final argument\n")
quit()
try:
command = sys.argv[4]
loopy_subprocess(arga, argb, iterations, command)
except:
loopy_subprocess(arga, argb, iterations)
Pour ce faire, le moyen le plus simple consiste probablement à accéder aux arguments de ligne de commande à partir de python et à effectuer la boucle dans python. Vous pouvez consulter sys.argv
à partir du module sys
pour accéder aux arguments de la ligne de commande. Si je me souviens bien, cela devrait vous permettre de faire quelque chose comme:
python scriptname.py argument1 argument2
puis accédez aux arguments dans scriptname.py en utilisant
import sys
arg_1 = sys.argv[1]
arg_2 = sys.argv[2]
Vous pouvez également développer facilement toute une pile de commandes avec un outil tel que cliff (cadre de formulation d'interface de ligne de commande).