2010-06-10 4 views
3

Tout d'abord ce n'est pas un devoir, j'ai désespérément besoin d'un script qui va faire ce qui suit, mon problème est que je n'ai jamais eu à faire avec python auparavant, je sais à peine comment l'utiliser - et J'ai besoin pour lancer les tests unitaires dans TeamCity par un coureur de construction de ligne de commandePython: obtient tous les fichiers exe dans le répertoire courant et les exécute?

ce que je dois exactement est:

un fichier * .bat qui exécutera le script

un script python qui:

  • obtenir tous les fichiers * _test.exe dans le courant répertoire de travail
  • exécuter tous les fichiers qui ont été le résultat de la recherche

Meilleures salutations

+0

Pourquoi avez-vous besoin d'impliquer Python, ne pouvez pas vous suffit d'utiliser le fichier batch pour démarrer ces programmes? –

+0

Nous ajoutons des tests tous les jours, nous ne voulons pas éditer le fichier batch chaque fois que nous ajoutons quelque chose de nouveau, nous avons besoin d'une solution flexible – Maciek

+0

Quelle erreur ou problème avez-vous eu avec le code que j'ai posté? –

Répondre

5
import glob, os 
def solution(): 
    for fn in glob.glob("*_text.exe"): 
     os.startfile(fn) 
+0

cette solution a fonctionné. Une autre question que j'ai est: puis-je faire attendre le script jusqu'à ce que le processus en cours se termine? – Maciek

+2

ajoutez 'import subprocess' et remplacez' os.startfile (fn) 'par' p = subprocess.Popen ([fn]); p.wait() '. p.wait() vous donnera également le code de retour afin que vous puissiez faire quelque chose comme 'si p.wait() == 0: print 'Success'; else: print 'Fail'' –

+0

Cela l'a fait, encourage Wayne et gnibbler – Maciek

3

Si vous copiez ce dans un fichier, le script devrait faire comme vous avez demandé.

import os  # Access the operating system. 

def solution(): # Create a function for later. 
    for name in os.listdir(os.getcwd()): 
     if name.lower().endswith('_test.exe'): 
      os.startfile(name) 

solution()  # Execute this inside the CWD. 
+0

il y a un problème avec cette solution :) – Maciek

Questions connexes