PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.python > [Win] Associer un type de fichier à un script .pyw
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
[Win] Associer un type de fichier à un script .pyw

Réponse
 
LinkBack Outils de la discussion
Vieux 14/10/2007, 20h05   #1
Franck Pommereau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut [Win] Associer un type de fichier à un script .pyw

Bonjour,

Sous Windows, j'ai écrit un script Python pour simplifier la conversion
..flv vers .mpg et .mp3 (avec ffmpeg). J'ai sauvé ce script sous
l'extension .pyw (pour éviter la console) et j'ai associé l'extension
..flv à mon script.

Quand je double-clic sur un fichier .flv, j'ai une erreur qui me dit que
le programme "fichier.flv" n'est pas une application Win32 valide. Je
suis d'accord mais Win32 était supposé lancer "script.pyw" et non son
argument.

J'ai vérifié, j'ai bien bien .py et .pyw dans la variable PATHEXT.

J'ai aussi essayé avec py2exe, tout va bien pour l'exécution mais les
arguments sont coupés en morceaux selon les espaces. Par exemple,
sys.argv vaudra ["C:\Documents", "and", "Settings\Mon",
"Utilisateur\Bureau\Mon", "Fichier.flv"]

J'ai essayé avec py2cmd mais il ne transmet pas les arguments...

Quelle est la bonne façon de m'y prendre ? Est-il possible que cette
chose si simple sous Unix devienne si compliquée sous Windows ?

Merci d'avance de votre aide,
Franck
  Réponse avec citation
Vieux 15/10/2007, 00h47   #2
Méta-MCI \(MVP\)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Win] Associer un type de fichier à un script .pyw

Bonsoir !

Il faut simplement associer l'extension .pyw à un programme exécutable. Par exemple à
C:\Python25\pythonw.exe script.pyw
(au passage, l'utilisation de pythonw.exe dispense d'utiliser l'extension .pyw)

Quelques autres possibilités :
- définir un batch, et associer l'extension à ce batch
- utiliser une ligne de commande basée sur cmd /c...
- utiliser une ligne de commande basée sur start... (qui permet, entre autres, de lancer un
fichier, par son appli associée)
- utiliser le petit lanceur .exe de Effbot
- utiliser l'utilitaire RunAs.exe (sur mon site) ; à ne pas confondre avec la commande RunAs de
windows. Cet utilitaire permet, en plus, de lancer le script sous un autre compte (Admin, etc.)

@-salutations

Michel Claveau

  Réponse avec citation
Vieux 15/10/2007, 07h04   #3
Franck Pommereau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Win] Associer un type de fichier à un script .pyw

> Il faut simplement associer l'extension .pyw à un programme
> exécutable. Par exemple à
> C:\Python25\pythonw.exe script.pyw
> (au passage, l'utilisation de pythonw.exe dispense d'utiliser
> l'extension .pyw)


C'est ce que j'imaginais et donc ce que j'ai fait : les fichiers .pyw
sont ouverts par pythonw.exe et les .py par python.exe.
Mais ça ne marche pas.

> - définir un batch, et associer l'extension à ce batch


J'y ai pensé mais je ne sais pas comment transmettre les paramètres du
..bat vers le .py.

> - utiliser le petit lanceur .exe de Effbot
> - utiliser l'utilitaire RunAs.exe (sur mon site) ; à ne pas confondre
> avec la commande RunAs de windows. Cet utilitaire permet, en plus, de
> lancer le script sous un autre compte (Admin, etc.)


Après un rapide coup d'oeil, je vois mal comment m'en sortir avec ça.
RunAd demande un paramètre et dans mon cas ce serait le fichier à
traiter, quant à Effbot... pas assez de doc pour que je voies à quoi ça
sert.

Mais dans tous ces cas (.bat, lanceur, etc.) j'ai l'impression que je
fais compliqué alors que ça devrait être simple !

Franck
  Réponse avec citation
Vieux 15/10/2007, 08h14   #4
Laurent Pointal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Win] Associer un type de fichier à un script .pyw

Franck Pommereau a écrit :
>MVP a proposé l'idée suivante:
>> - définir un batch, et associer l'extension à ce batch

>
> J'y ai pensé mais je ne sais pas comment transmettre les paramètres du
> ..bat vers le .py.


@echo off
c:\python25\pythonw.exe c:\path\vers\mon\script\monscript.pyw %1 %2 %3

(etc... jusqu'à %9 si tu en as besoin)

  Réponse avec citation
Vieux 15/10/2007, 14h00   #5
Méta-MCI \(MVP\)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Win] Associer un type de fichier à un script .pyw

Re !

> C'est ce que j'imaginais et donc ce que j'ai fait : les fichiers .pyw sont ouverts par pythonw.exe
> et les .py par python.exe. Mais ça ne marche pas.


Ce n'est pas ce que j'ai suggéré. En faisant ça, tu vas utiliser une association d'association.
Ce qu'il faut faire, c'est associer pythonw.exe (avec le script en paramètre) à flv.

Sinon, le batch de Laurent Pointal est une excellent manière de procéder.

@+

MCI

  Réponse avec citation
Vieux 15/10/2007, 14h04   #6
Méta-MCI \(MVP\)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Win] Associer un type de fichier à un script .pyw

Bonjour !

Je ne sais pas si tu l'as fait exprès, mais sais-tu que ton batch supportera le drag & drop et le
copier/coller.
Par exemple, il suffit de le mettre en icône sur le bureau. Ensuite, à partir de l'explorateur,
clic-droit+copier un fichier, suivi de clic-droit+coller sur l'icone. Cela lancera Python et le
script, avec le nom du/des fichiers en argument(s) (paramètre).

@+

MCI


  Réponse avec citation
Vieux 15/10/2007, 15h44   #7
Laurent Pointal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Win] Associer un type de fichier à un script .pyw

Méta-MCI (MVP) a écrit :
> Bonjour !
>
> Je ne sais pas si tu l'as fait exprès,


Non, je pensais juste à l'association extension -> exécutable de Windows.

> mais sais-tu que ton batch
> supportera le drag & drop et le copier/coller.
> Par exemple, il suffit de le mettre en icône sur le bureau. Ensuite, à
> partir de l'explorateur, clic-droit+copier un fichier, suivi de
> clic-droit+coller sur l'icone. Cela lancera Python et le script, avec le
> nom du/des fichiers en argument(s) (paramètre).


Un candidat pour mettre ça dans le wiki ?


>
> @+
>
> MCI
>
>

  Réponse avec citation
Vieux 15/10/2007, 18h16   #8
Franck Pommereau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Win] Associer un type de fichier à un script .pyw

> @echo off
> c:\python25\pythonw.exe c:\path\vers\mon\script\monscript.pyw %1 %2 %3
>
> (etc... jusqu'à %9 si tu en as besoin)


Et il n'y aura pas de problème avec les espaces dans les noms de
fichiers, ne dois-je pas mettre "%1", etc. ?

En tout cas, j'ai réussi à trouver une solution directe. Dans le shell
(enfin... cmd.exe) je tape :

assoc .flv=Flv.Video

ftype Flv.Video=C:\Chemin vers pythonw.exe "C:\Chemin vers script.pyw"
"%1" %*

(La deuxième commande sur une seule ligne.)

Puis dans l'interface graphique, je change l'association de l'extension
..flv, là, il me propose "pythonw" et c'est ce que je choisis.

Maintenant ça marche. (Mais je pense que le %* est douteux, et de toute
façon ne servira jamais...)

Vive la ligne de commande ! :-)

En tout cas merci pour ces indications qui me seront sûrement utiles
pour une autre fois.

Franck
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 05h34.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,12101 seconds with 16 queries