Exécuter un lot spécifique de commande en python
Ce que si je veux inclure d'une seule commande de traitement par lots ce n'est pas déjà dans un fichier en python?
par exemple:
REN *.TXT *.BAT
Je pourrais mettre ça dans un fichier python en quelque sorte?
Qu'est-ce exactement que vous essayez de faire ici? renommer tous les
.txt
fichiers .bat
?OriginalL'auteur user2072826 | 2013-06-15
Vous devez vous connecter pour publier un commentaire.
La "vieille école" la réponse a été d'utiliser
os.système
. Je ne suis pas familier avec Windows, mais quelque chose comme qui ferait l'affaire:Ou (peut-être)
Mais maintenant, comme l'a remarqué par Ashwini Chaudhary, le "recommandé" remplacement pour
os.système
estsous-processus.appel
Si
REN
est un shell de Windows interne commande:Si c'est un externe commande:
subprocess
module pour de telles tâches, et cela est mentionné dans l'os.system
'docs."Avancées" d'utilisation (comme la capture de la sortie), vous avez raison. Pour une utilisation de base, le système fait un travail décent 😉 de toute façon, je ne suis pas sûr de savoir comment va se comporter "sous-processus", tout en invoquant interne des commandes shell. Vous devez invoquer
subprocess.call
avecshell=True
, droit? - Je modifier ma réponse en conséquence. Grâce à souligner que!shell = True
peut être dangereux et n'est pas recommandé en général, l'utilisationshlex.split
:subprocess.call(shlex.split('ren *.txt *.bat'))
Je suis d'accord que
shell=True
pourrait être dangereux lors de l'invocation de l'utilisateur commandes (shell de commande d'injection), mais je ne pense pas que nous sommes dans cette situation là. La "commande shell" semble être fournis par le programmeur. Et (je ne suis pas sûr à ce sujet) si " S " est en fait un interne Windows shell de commande -- vous aurez besoin d'un shell.shell = True
ne signifie pas que la commande est une commande du shell, il est nécessaire, lorsque vous êtes en passant d'une chaîne àsubprocess
. docs.python.org/2/library/...OriginalL'auteur Sylvain Leroux
essayez ceci:
ou
OriginalL'auteur Endoro
Un exemple d'utilisation sous-processus pour exécuter une commande de Linux à partir de Python:
OriginalL'auteur JHG
J'ai créé un
test.py
contenant ce, et cela a fonctionné....OriginalL'auteur AjV Jsy