J'essaie d'exécuter un fichier Je suis sur Windows, donc je ne peux pas faire .bat code> (qui agit comme un simulateur) dans une nouvelle fenêtre, il doit toujours toujours fonctionner en arrière-plan. Je pense que la création d'un nouveau processus est la seule option que j'ai. Fondamentalement, je veux que mon code fasse quelque chose comme ceci: os.fork code>. P> < / p>
4 Réponses :
On dirait que vous voulez "OS.SPOWN *", qui semble assimiler à OS.FORK, mais pour Windows. Certaines recherches ont été activées cet exemple:
# File: os-spawn-example-3.py
import os
import string
if os.name in ("nt", "dos"):
exefile = ".exe"
else:
exefile = ""
def spawn(program, *args):
try:
# check if the os module provides a shortcut
return os.spawnvp(program, (program,) + args)
except AttributeError:
pass
try:
spawnv = os.spawnv
except AttributeError:
# assume it's unix
pid = os.fork()
if not pid:
os.execvp(program, (program,) + args)
return os.wait()[0]
else:
# got spawnv but no spawnp: go look for an executable
for path in string.split(os.environ["PATH"], os.pathsep):
file = os.path.join(path, program) + exefile
try:
return spawnv(os.P_WAIT, file, (file,) + args)
except os.error:
pass
raise IOError, "cannot find executable"
#
# try it out!
spawn("python", "hello.py")
print "goodbye"
est ce python 2.7 seulement?
Utiliser sous-processus.popen code> (non testé sous Windows, mais devrait fonctionner). import os
def startSim():
os.startfile("startsim.bat")
# Do your stuff here.
sur Windows, un processus d'arrière-plan est appelé "service". Vérifiez cette autre question sur la façon de créer un service Windows avec Python: Création d'un service Python Win32 A > p>
proc.wait()
Voir Stackoverflow.com/Questtions/23397/...
Dupliqué possible de Python Subprocess
Déjà lisez celui sur la fabrication d'un OS.Fork sous Windows, j'ai besoin de quelque chose que je n'aurai pas à installer un module ou un programme (Cygwin) pour le faire.