#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