2016-10-07 3 views
2

car j'aime les chiffres interactifs de matlab (* .fig). J'ai écrit un petit programme pour enregistrer des figures interactives en Python. J'utilise cornichon pour vider une figure matplotlib.pyplot dans un fichier name.pyfig:Python: Matplotlib chiffres interactifs ouverts

output = open('name.pyfig', 'wb') 
    pickle.dump(plt.gcf(), output) 
    output.close() 

Pour ouvrir le chiffre que j'utilise:

f = open('name.pyfig','rb') 
    pickle.load(f) 
    f.close() 

Maintenant, je voudrais mettre en œuvre ce qui suit: Je veux pour ouvrir la figure en double-cliquant sur le fichier name.pyfig dans l'explorateur de fichiers Windows.

Depuis name.pyfig ne contient que les données de la figure, j'ai écrit un script python openfig.py pour ouvrir la figure en utilisant

python openfig.py name.pyfig 

dans le CMD qui fonctionne très bien. Pour pouvoir ouvrir openfig.py en double-cliquant sur le fichier pyfig, j'associe l'extension pyfig avec un fichier bat (ouvrir avec - choisir le programme par défaut) en appelant le code ci-dessus qui fonctionne également, aussi longtemps que le fichier bat est dans le même dossier! Pour une raison quelconque, il n'est pas possible de sélectionner le fichier bat comme programme par défaut pour le fichier pyfig s'il se trouve ailleurs!

Une solution? Ge

Système: Version Python 2.7.9 Win 7 Enterprise

Répondre

0

Vous devez donner le chemin absolu si vous voulez mettre le fichier bat un autre endroit.

f = open('C:\full\path\to\folder\name.pyfig','rb') 
0

de Nevermind, j'ai ajouté manuellement une entrée de registre qui a bien fonctionné:

Windows Registry Editor Version 5.00 

    [HKEY_CLASSES_ROOT\pyfig_auto_file] 
    @="" 

    [HKEY_CLASSES_ROOT\pyfig_auto_file\DefaultIcon] 
    @="path_to_ico_file" 

    [HKEY_CLASSES_ROOT\pyfig_auto_file\shell] 

    [HKEY_CLASSES_ROOT\pyfig_auto_file\shell\open] 

    [HKEY_CLASSES_ROOT\pyfig_auto_file\shell\open\command] 
    @="\"path_to_bat_file\"\"%1\"" 

Ge