Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Problème avec popen

+1 vote

Prenons ce script à 0.0 € :

import os
os.popen("tskill notepad")

sous la console ca marche
si je lance dans le terminal windows :"python.exe monprog" ca marche

si je double clique sur le script python.exe essaie et me sort:

OSError: [Errno 22] Invalid argument
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp12
52'>

Pourquoi tant de haine?

demandé 21-Nov-2015 par jub (120 points)
edité 21-Nov-2015 par max

1 Réponse

+2 votes
 
Meilleure réponse

Essais en mettant le chemin complet de tskill.

par exemple:

import os
os.popen("C:/chemin_vers/tskill.exe notepad")

ou:

import os
os.system("tskill notepad")
répondu 21-Nov-2015 par max (892 points)
sélectionné 21-Nov-2015 par jub

le 1er cas marche merci
pour le 2nd il faut
os.system("tskill.exe notepad")


petit retour pour ceux interessés:
la cause est bien évidemment le chemin de base
par contre si on fait

import subprocess
proc = subprocess.Popen('taskmgr')

meme en doucle cliquant sur le script python ca fonctionne(sur windows)

ah et pour les debutants comme moi:
sur windows on remplace les \ par / dans le chemin (comme sur unix en gros mais en conservant "lettre:" pour les volumes, ex : C:/machin au lieu de C:\machin)


le script "final":

import subprocess
import os

proc = subprocess.Popen('ver', stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
a=str(out)
b=a.split('ersion ',1)
print(b[1])
c=b[1]
print(c)
d=c.split('.',2)
print(d)
e=d[0]+"."+d[1]
print(e)

if e=='6.1':
print("vous etes sur w7")

os.system('pause')

La vie est belle.

...