2010-10-13 9 views
1

Subprocess en Python Ajouter des variablesSubprocess en Python Ajouter des variables

import subprocess 
subprocess.call('Schtasks /create /sc ONCE /tn Work /tr C:\work.exe /st 15:42 /sd 13/10/2010') 

Je veux être en mesure de définir les variables sur la commande ci-dessus. les variables sont le temps '15: 42 'séparé en 15 et 42 et la date '13/10/2010' séparé en jour, mois et année des idées?

Merci à l'avance

George

Répondre

0

import subprocess 
time = "15:42" 
date = "13/10/2010" 
# you can use these variables anyhow take input from user using raw_iput() 
subprocess.call('Schtasks /create /sc ONCE /tn Work /tr C:\work.exe /st '+time+' /sd '+date) 
+0

comment faire la chaîne de l'heure et la date? – geocheats2

+0

-1 La mise en forme de chaînes en les additionnant n'est pas la seule et unique façon de le faire. – katrielalex

+0

@ geocheats2 que voulez-vous dire par faire une chaîne de u peut utiliser datetime: http://docs.python.org/library/datetime.html pour l'utilisation des objets de date et d'heure et les méthodes requises pour le format de chaîne est possible – jknair

1

Utilisez % formatting pour construire la chaîne de commande.

>>> hour,minute = '15','42' 
>>> day,month,year = '13','10','2010' 
>>> command = 'Schtasks /create /sc ONCE /tn Work /tr C:\work.exe /st %s:%s /sd %s/%s/%s' 
>>> command % (hour,minute, day,month,year) 
'Schtasks /create /sc ONCE /tn Work /tr C:\\work.exe /st 15:42 /sd 13/10/2010' 
>>> subprocess.call(command % (hour,minute, day,month,year)) 
>>> 
+0

La méthode de formatage est préférée depuis Python 2.6: http://www.python.org/dev/peps/pep-3101/ – katrielalex

0

Python a de formatage avancées capacités, en utilisant la méthode format sur les chaînes. Par exemple:

>>> template = "Hello, {name}. How are you today, {date}?" 
>>> name = "World" 
>>> date = "the fourteenth of October" 
>>> template.format(name=name, date=date) 
'Hello, World. How are you today, the fourteenth of October?' 

Vous pouvez obtenir l'heure et la date en utilisant strftime dans le module datetime:

>>> import datetime 
>>> now = datetime.datetime.now() 
>>> now.strftime("%A %B %Y, %I:%M:%S") 
'Wednesday October 2010, 02:54:30' 
0
import time 

subprocess.call(time.strftime("Schtasks /create /sc ONCE /tn Work /tr C:\work.exe /st %H:%M /sd %d/%m/%Y")) 

Si vous souhaitez modifier le temps que vous pouvez définir dans l'objet du temps et utilise le.

Questions connexes