os.system ==> ne marche pas

os.system ==> ne marche pas - Python - Programmation

Marsh Posté le 15-03-2009 à 19:33:23    

Bonjour,
 
J'ai un ptit problème : je dois lancer une commande windows à partir d'un script écrit en python. J'ai donc tenté d'utiliser os.system. Mais sans succé.
J'ai droit à une message disant :  

Citation :

the filename, the directory n ame, or volume label syntax is incorrect


 
la commande en question :  

Citation :

os.system("c:\ABAQUS\Commands\abaqus.bat cae noGUI=c:\Temp\Macro_modele_2_step_statique_metre_temp" )


 
A savoir, que les noms de répertoire sont correcte, puisque la commande entre les "" renvoi le résultat voulu si elle es entré dans une invite de commande.
 
Quelqu'un aurait-il une idée ?


Message édité par castorgris le 15-03-2009 à 19:33:53

---------------
Mon Feed-back
Reply

Marsh Posté le 15-03-2009 à 19:33:23   

Reply

Marsh Posté le 15-03-2009 à 20:42:16    

Reply

Marsh Posté le 15-03-2009 à 22:48:24    

??


---------------
Mon Feed-back
Reply

Marsh Posté le 15-03-2009 à 23:26:07    

Avec ce génialissime OS qu'est windows, faut pas échapper les '\' quand on rentre des commandes system()?


---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 15-03-2009 à 23:58:28    

rien à voir avec windows, \ c'est le caractère d'échappement c'est tout.

Reply

Marsh Posté le 16-03-2009 à 00:07:59    

Et le séparateur de chemin sous DOS. Donc quand on copie/colle depuis un shell DOS...


---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 16-03-2009 à 00:22:07    

Gf4x3443 a écrit :

Et le séparateur de chemin sous DOS. Donc quand on copie/colle depuis un shell DOS...


on utilise des rawstrings [:glenda]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-03-2009 à 00:23:15    

et subprocess


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 16-03-2009 à 00:31:50    

Reply

Marsh Posté le 16-03-2009 à 00:44:17    

Gf4x3443 a écrit :


 
et os.sep [:glenda]


[:vomi]
 
os.path.join à la limite, mais pas os.sep directrement [:totoz]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-03-2009 à 00:44:17   

Reply

Marsh Posté le 16-03-2009 à 01:40:11    


 
C'est à peu près ce que j'en pense de l'utilisation des raw string en python pour le codage de chemins sous windows.
 
Elles n'ont jamais été prévues pour cet usage, mais pour les regexp, les détourner à cela, c'est vraiment une balle dans le pied, en plus d'être non portable. Ca me fait un peu penser aux aberrations auxquelles ont mené les magic_quotes de PHP [:ddr555]


---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 16-03-2009 à 10:05:08    

Oula j'ai peur...
J'ai pas compri un seul des posts de réponse...
toujours est-il que en remplaçant mes \ par des / ça donne ce que je veux. Maintenant je laisse expliquer ce qui savent pourquoi !


---------------
Mon Feed-back
Reply

Marsh Posté le 16-03-2009 à 10:58:15    

Gf4x3443 a écrit :

Elles n'ont jamais été prévues pour cet usage, mais pour les regexp


Bullshit, si ça avait été le cas Python aurait des regexp littérales comme Perl ou Ruby, pas des rawstrings. Les rawstrings ont été prévus pour quelque chose de très clair: empêcher l'interprétation des séquences d'échappement. C'est très utile pour le regexps, mais c'est sûrement pas leur seul domaine d'application.

Gf4x3443 a écrit :

en plus d'être non portable.


On est dans un thread parlant d'un path windows en dur dans le script, je suis pas persuadé que la portabilité soit d'une grande importance.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-03-2009 à 16:37:06    

masklinn a écrit :


Bullshit, si ça avait été le cas Python aurait des regexp littérales comme Perl ou Ruby, pas des rawstrings. Les rawstrings ont été prévus pour quelque chose de très clair: empêcher l'interprétation des séquences d'échappement. C'est très utile pour le regexps, mais c'est sûrement pas leur seul domaine d'application.

 

Bullshit.

 

Sauf à la fin. Comme implémentation, c'est particulièrement broken alors. Pour des chemins sous windows en tout cas. T'essaieras des "str = r'C:\WIndows\'

 

Conseiller des raw string literals pour ca, mouarff.

 
masklinn a écrit :


On est dans un thread parlant d'un path windows en dur dans le script, je suis pas persuadé que la portabilité soit d'une grande importance.

 

Voir au dessus.

Message cité 1 fois
Message édité par Gf4x3443 le 16-03-2009 à 16:37:21

---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 16-03-2009 à 17:04:50    

Gf4x3443 a écrit :

Bullshit.
 
Sauf à la fin.


Oui sauf à la fin.

Gf4x3443 a écrit :

Comme implémentation, c'est particulièrement broken alors. Pour des chemins sous windows en tout cas. T'essaieras des "str = r'C:\WIndows\'


r'c:\windows' [:spamafote]

Gf4x3443 a écrit :

Conseiller des raw string literals pour ca, mouarff.


Ca fonctionne suffisamment bien pour 99% des scripts "one shot"


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-03-2009 à 18:19:46    

masklinn a écrit :


r'c:\windows' [:spamafote]

 

On contourne une implémentation broken alors que sémantiquement parlant, c'est strictement identique. On peut pas dire que ca soit une réussite de recommander l'usage d'une raw string pour un path windows.

 
masklinn a écrit :


Ca fonctionne suffisamment bien pour 99% des scripts "one shot"

 

Bah oui tiens, vu que ca marche dans 99% des cas, acceptons ce genre de bidouilles. Au même titre, on conseillera de ne pas catcher les exceptions ni les erreurs après syscalls, vu que ca marche dans 99% des cas. Désolé, de mon point de vue, c'est un mauvais conseil. J'ai pas lu qu'il était question d'en faire un script "one shot", d'ailleurs.

 

Edit: Avec la tendance vers le cargo cult programming, c'est vraiment la tunique de nessus ce truc.

 

Bref, nous ne seront pas d'accord sur ce point là, laissons à ceux qui liront à l'avenir le sujet de juger par eux mêmes. Fin du débat pour moi.

 


Message édité par Gf4x3443 le 16-03-2009 à 18:22:11

---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed