3 votes

Obtenir une association de fichiers en Python

Je veux obtenir le programme associé à une extension, à la fois dans Linux et dans Windows. Je sais que je peux exécuter xdg-open sous Linux ou démarrer sous Windows, mais je vais ouvrir un fichier multimédia sur un serveur distant, donc utiliser cette méthode ouvrirait le navigateur web, et non le lecteur multimédia par défaut. Comment puis-je obtenir l'application par défaut d'une extension ?

2voto

gseattle Points 178

Couverture des fenêtres uniquement en dessous :

Je pense que ce sera proche de ce que je viens de faire pour le .doc (associé à winword.exe).

Sur mes machines...

ÉTAPE 1 : Jetez un coup d'œil à la clé de registre : HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.doc


Sur Windows XP

ÉTAPE 2 : Regardez le par défaut (ignorez tout le reste). La valeur par défaut que je vois est Word.Document.8

ETAPE 3 : Maintenant, utilisez cela, et insérez-le (remarquez-le dans le nom de la clé ci-dessous), pour lire la valeur par défaut de

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command

Cette valeur est : "\" C:\Program Fichiers \Microsoft Office XP Pro 2003 \OFFICE11\WINWORD.EXE\ " /n /dde"

Et c'est le chemin vers MS Word sur mon système, du moins sur XP.

Je viens aussi de remarquer, à propos des suggestions de Mikel ci-dessus, qu'elles sont excellentes pour XP :

C:\>assoc .doc
.doc=Word.Document.8

C:\>ftype Word.Document.8
Word.Document.8="C:\Program Files\Microsoft Office XP Pro 2003\OFFICE11\WINWORD.EXE" /n /dde

Sur Windows 7

La valeur par défaut de STEP 1 n'a pas été définie, et c'en était fini de la simplicité. Il y a une sous-clé appelée 'OpenWithProgIDs', donc je suppose que vous devriez la rechercher si la valeur par défaut est vide ou en fonction de la version du système d'exploitation.

ÉTAPE 2 : Lisez la sous-clé appelée " OpenWithProgIDs ". Il y a un élément nommé Word.Document.8 donc nous sommes de retour à cela maintenant.

ÉTAPE 3 : Branchez-le à nouveau, pour lire la valeur par défaut de

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command

Dans ce cas (le mien), la valeur est plus complexe :

" C:\Program Fichiers (x86) \Common Fichiers \microsoft partagé \virtualization manipulateur \cvh.exe " "Microsoft Word Starter 2010 9014006604090000" /n "%1"

Dans le bon quartier, en ce qui concerne l'utilisation du registre.

Malheureusement, sous Windows 7, 'assoc' et 'ftype' n'ont pas fait l'affaire, du moins pour les fichiers .doc et le chemin d'accès à winword.exe sur ma machine.

1voto

Mikel Points 10000

Il existe un programme appelé xdg-mime qui est comme xdg-open, mais qui imprime les informations plutôt que d'essayer d'ouvrir le fichier.

xdg-mime query filetype /tmp/foobar.png

Imprime le type MIME du fichier /tmp/foobar.png, dans ce cas image/png.

xdg-mime query default image/png

Imprime le nom de fichier .desktop de l'application qui est enregistrée pour ouvrir les fichiers PNG.

Sous Windows, si vous ne trouvez pas d'API, vous pouvez peut-être utiliser assoc o ftype qui font partie de cmd .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X