2016-10-07 8 views
2

так как мне нравятся интерактивные фигуры из matlab (* .fig). Я написал небольшую программу для сохранения интерактивных фигур в Python. Я использую рассол, чтобы сбросить matplotlib.pyplot фигуру в файле name.pyfig:Python: Matplotlib открыть интерактивные изображения

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

Чтобы открыть фигуру, я использую:

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

Теперь я хотел бы реализовать следующее: Я хочу чтобы открыть фигуру, дважды щелкнув файл name.pyfig в проводнике файлов Windows.

Поскольку name.pyfig содержит только данные фигуры, я написал openfig.py питон скрипт, чтобы открыть рисунок с помощью

python openfig.py name.pyfig 

в CMD, который работает достаточно хорошо. Чтобы запустить openfig.py, дважды щелкнув файл pyfig, я связываю расширение pyfig с файлом bat (open with - выберите программу по умолчанию), вызывая код сверху, который также работает, если файл bat находится в одной папке! По какой-то причине невозможно выбрать файл bat в качестве программы по умолчанию для файла pyfig, если он находится где-то в другом месте!

Любое решение? Ge

система: Python версии 2.7.9 Win 7 Enterprise

ответ

0

Вы должны дать полный абсолютный путь, если вы хотите поместить файл летучей мыши где-нибудь в другом месте.

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

Nevermind, я вручную добавить запись реестра, который работал отлично:

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