Python: Matplotlib открывает интерактивные фигуры

#python #matplotlib #save #interactive #figure

#python #matplotlib #Сохранить #интерактивный #рисунок

Вопрос:

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

     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 содержит только данные фигуры, я написал скрипт на python openfig.py чтобы открыть фигуру, используя

     python openfig.py name.pyfig
  

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

Есть решение? Ge

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

Ответ №1:

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

 f = open('C:fullpathtofoldername.pyfig','rb')
  

Ответ №2:

Неважно, я вручную добавил запись в реестре, которая работала нормально:

     Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOTpyfig_auto_file]
    @=""

    [HKEY_CLASSES_ROOTpyfig_auto_fileDefaultIcon]
    @="path_to_ico_file"

    [HKEY_CLASSES_ROOTpyfig_auto_fileshell]

    [HKEY_CLASSES_ROOTpyfig_auto_fileshellopen]

    [HKEY_CLASSES_ROOTpyfig_auto_fileshellopencommand]
    @=""path_to_bat_file""%1""
  

Ge