12 réponses
ok, c'est bon
En fait faut rajouter un \ pour eviter que le " soit pris comme caractère d'echappement.
Par contre la ligne :
me renvoie 1 et ne s'execute pas.
Une idée ?
Merci encore pour votre aide
Amicalement
Steph70
En fait faut rajouter un \ pour eviter que le " soit pris comme caractère d'echappement.
Par contre la ligne :
os.popen(rar a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb")
me renvoie 1 et ne s'execute pas.
Une idée ?
Merci encore pour votre aide
Amicalement
Steph70
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
9 janv. 2009 à 19:57
9 janv. 2009 à 19:57
Salut,
EOL = End of line
Il ne faut pas mettre d'antislash avant la guillemet fermante....
EOL = End of line
Il ne faut pas mettre d'antislash avant la guillemet fermante....
ok mais puisque j'ai quand meme besoin de cet antislash, comment outrepasser ce problème ?
merci pour votre aide
Steph70
merci pour votre aide
Steph70
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
9 janv. 2009 à 23:20
9 janv. 2009 à 23:20
Comme ça:
Ou mieux, les triples quotes:
os.popen("cd \"")
Ou mieux, les triples quotes:
os.popen("""cd \""")
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désole kilian,
nos messages ont du se croiser.
Amicalement
Steph70
nos messages ont du se croiser.
Amicalement
Steph70
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
9 janv. 2009 à 23:39
9 janv. 2009 à 23:39
Ah oui pardon, c'est "\\"
Pour ta commande avec rar. Essaie de mettre le chemin complet vers l'executable de rar.
Pour ta commande avec rar. Essaie de mettre le chemin complet vers l'executable de rar.
Merci Kilian
je viens d'essayer avec cette commande :
Et voici le resultat :
<code><open file 'c:\program files\winrar
ar.exe a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb', mode 'r' at 0x00B36920><\code>
et malheureusement pas d'execution
Amicalement
Steph70
je viens d'essayer avec cette commande :
os.popen("c:\program files\winrar\rar.exe a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb")
Et voici le resultat :
<code><open file 'c:\program files\winrar
ar.exe a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb', mode 'r' at 0x00B36920><\code>
et malheureusement pas d'execution
Amicalement
Steph70
Encore une fois merci Kilian.
Par contre, meme si je ne vois pas la commande, je devrais voir le résultat dans le dossier voulu, c'est a dire l'apparition du dossier autoextratible créer par winrar, ce qui n'est pas le cas.
C'est pour cela que je dis que la commande ne fonctionne pas meme si elle ne me renvoie pas d'erreur.
Merci encore pour ton aide
Amicalement
Steph70
Par contre, meme si je ne vois pas la commande, je devrais voir le résultat dans le dossier voulu, c'est a dire l'apparition du dossier autoextratible créer par winrar, ce qui n'est pas le cas.
C'est pour cela que je dis que la commande ne fonctionne pas meme si elle ne me renvoie pas d'erreur.
Merci encore pour ton aide
Amicalement
Steph70
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
10 janv. 2009 à 17:52
10 janv. 2009 à 17:52
Ca t'affiche rien avec le read?
Déterrons un peu le topic.
En fait la méthode "popen" du module "os" python est obsolète.
Il faut pour cela utiliser in commande "Popen" (avec une majuscule) du module "subprocess", je l'ai teste en faisant du "ssh" avec "plink" et ça marche bien.
Bon je me doute bien que ce problème à du être résolu depuis le temps mais au cas ou quelqu'un tomberait dessus, il aurais au moins une solution.
Voila le lien vers l'API Python:
http://docs.python.org/library/subprocess.html?highlight=popen#subprocess.Popen.stdout
et un autre pour la conversion des anciennes commandes :
http://docs.python.org/library/subprocess.html?highlight=popen#replacing-older-functions-with-the-subprocess-module
Cordialement
En fait la méthode "popen" du module "os" python est obsolète.
Il faut pour cela utiliser in commande "Popen" (avec une majuscule) du module "subprocess", je l'ai teste en faisant du "ssh" avec "plink" et ça marche bien.
Bon je me doute bien que ce problème à du être résolu depuis le temps mais au cas ou quelqu'un tomberait dessus, il aurais au moins une solution.
Voila le lien vers l'API Python:
http://docs.python.org/library/subprocess.html?highlight=popen#subprocess.Popen.stdout
et un autre pour la conversion des anciennes commandes :
http://docs.python.org/library/subprocess.html?highlight=popen#replacing-older-functions-with-the-subprocess-module
Cordialement
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
10 janv. 2009 à 14:40
10 janv. 2009 à 14:40
En fait popen renvoie un descripteur de fichier.
En arrière plan, le processus s'execute bin mais tu ne le vois pas.
Il faut appeler read() pour le voir:
En arrière plan, le processus s'execute bin mais tu ne le vois pas.
Il faut appeler read() pour le voir:
fd = os.popen("c:\program files\winrar\rar.exe a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb") print fd.read() fd.close()
re et encore merci
Et bien non ca ne me renvoi rien du tout.
J'ai essayé en changeant juste ma commande mais meme résultat :
Comme tu le vois, juste après le print p.read ca reste obstinément vide et rien ne se fait dans le dossier de destination alors que la commande dos identique fonctionne.
Amicalement
Lonewolf
Et bien non ca ne me renvoi rien du tout.
J'ai essayé en changeant juste ma commande mais meme résultat :
os.popen("start \"c:\program files\winrar\rar a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb\"") <open file 'start "c:\program files\winrar ar a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb"', mode 'r' at 0x00B368D8> >>> p=os.popen("start \"c:\program files\winrar\rar a -sfx c:\Logimet\BDD_Logimet c:\Logimet\BDD_Logimet.mdb\"") >>> print p.read()
Comme tu le vois, juste après le print p.read ca reste obstinément vide et rien ne se fait dans le dossier de destination alors que la commande dos identique fonctionne.
Amicalement
Lonewolf