Свяжите расширение файла со сценарием python, чтобы я мог открыть файл двойным щелчком в Windows

Я хочу сделать следующее:

  1. Сохранять числовые данные в формате CSV с расширением «.foo»;
  2. Свяжите расширение файла «.foo» с некоторым скриптом python, который, в свою очередь, открывает файл .foo, считывает его содержимое и строит что-то с библиотекой рисования (вероятнее всего, matplotlib).

Вариант использования: дважды щелкните файл, и его соответствующий сюжет сразу же появится.

Интересно, как мне написать скрипт на Python, чтобы это сделать . Кроме того, диалог «открыть с помощью» окна позволяет мне выбирать только исполняемые файлы (* .exe). Если я выберу «fooOpener.py», он не сработает.


На самом деле это не вопрос программирования, но вам нужно выяснить, как поместите исполняемый файл Python в раздел реестра, который открывает ваш файл данных.

Например, я создал небольшой скрипт Python под названием opener.py , который выглядит так:

  import sysprint (sys.argv) input ()  

Затем я создал testfile.foo и использовал кнопку «изменить» в диалоговом окне свойств этого файла, чтобы выбрать opener.py . (Вы можете сделать это, если нажмете «Обзор» и измените фильтр файлов в диалоговом окне «Открыть с помощью» на «Все файлы».)

Конечно, это не сработало (как вы заметили). Итак, я открыл regedit , поискал opener.py и нашел его в следующем разделе реестра:

  HKEY_CURRENT_USER  Software  Classes  Applications  opener.py  shell  open  command  

Значение по умолчанию для этого ключа было "C: opener.py "% 1 . Я изменил его на python "C: opener.py"% 1 . Это сработало!

Короче говоря, чтобы сделать это правильно, вам нужно отредактировать реестр. На самом деле настройка сопоставления файлов более сложна, чем просто редактирование этого ключа (вы также должны указать, что .foo связан с opener.py ).

Альтернативным подходом было бы превратить ваш скрипт Python в автономный исполняемый файл с помощью одного из нескольких инструментов, доступных для этой цели, или написать небольшой исполняемый файл на C, который запускает скрипт.


2
  1. нажмите клавишу Windows
  2. введите cmd
  3. щелкните результат правой кнопкой мыши и выберите «Запуск от имени администратора»
  4. assoc .foo = foofile
  5. ftype foofile = "C: Users AppData Local Programs Python PYTHON ~ 1 python.exe" "C: fooOpener.py ""% 1 "% *

Используйте pythonw.exe , если это .pyw (чтобы предотвратить создание окна cmd).

Если вы хотите использовать существующего типа файла, вы можете найти его псевдоним, ничего не назначая. Например, assoc .txt возвращает . txt = txtfile .

Улучшите этот ответ
отредактировано 20 сентября ’20 в 0:09
ответил 19 сентября ’20 в 17:51
добавить комментарий |

  1. нажмите клавишу Windows
  2. введите cmd
  3. щелкните результат правой кнопкой мыши и выберите «Запуск от имени администратора»
  4. assoc .foo = foofile
  5. ftype foofile = "C: Users AppData Local Programs Python PYTHON ~ 1 python.exe" "C: fooOpener.py" "% 1"% *

Используйте pythonw.exe , если это файл .pyw (для предотвращения появления окна cmd) .

Если вы хотите использовать существующий тип файла, вы можете найти его псевдоним, ничего не назначая. Например, assoc .txt возвращает .txt = txtfile .



/ addext

addext

Версия: 2.0.1

Скрипт Python для добавления расширений файлов к файлам без них, на основе идентификации формата Зигфрида .

Вызов addext

addext.py принимает два позиционных аргумента:

  • target : путь к целевому файлу или каталогу
  • json : путь к Файл addext PRONOM JSON ( pronom_v95.json включен в этот репозиторий для удобства. См. раздел Файл JSON PRONOM ниже, чтобы узнать, как создать новый файл JSON. в ожидаемом формате из экспорта PRONOM XML)

Параметры включают:

  • -d, --dryrun : выполнить пробный прогон (напечатать возможные изменения в терминале вместо переименования файлов)
  • -m, --manual ode>: вручную выбрать расширение для добавления к файлам, когда PRONOM предоставляет несколько параметров (недоступно в Windows).

Поведение

Режим по умолчанию

В режиме по умолчанию addext добавляет расширения файлов к файлам, если они соответствуют нескольким условиям:

  • Зигфрид может точно определить PUID для файла
  • В PRONOM есть как минимум одно расширение файла, связанное с PUID
  • Файл еще не имеет одного из расширений, перечисленных в PRONOM для этого PUID (без учета регистра)

Если все условия соблюдены, addext добавляет расширение файла к файлу на месте. Перед переименованием файлов рекомендуется сначала попробовать пробный запуск, чтобы оценить предлагаемые изменения..

Ручной режим

В режиме -m, --manual , addext следует следующей логике:

  • Если Зигфрид не может точно определить PUID для файла, пропустите файл
  • Если существует только одно расширение файла, связанное с PUID в PRONOM, и файл еще не имеет этого расширения (без учета регистра), добавьте расширение
  • Если существует более одного расширения файла, связанного с PUID в PRONOM, а файл еще не имеет этого расширения, позвольте пользователю выбрать, какое расширение добавить, а затем изменить имя файла на месте.

Обратите внимание, что для каталогов с большим количеством файлов , просмотр файлов по одному в ручном режиме может занять некоторое время. Выполнение addext в качестве пробного запуска в ручном режиме может помочь понять объем ручного выбора, который вам будет предложено сделать.

Из-за его зависимости от Inquirer, ручной режим недоступен в Windows.

Требования

  • Python 3.6+
  • Зигфрид
  • Inquirer: для выбора между параметрами расширения в режиме -m, --manual (только для Linux/macOS); установлен с помощью pip install inquirer

Установка

Установите Siegfried

Установите Siegfried, следуя инструкциям, найденным здесь.

Установить через git clone/download

Самый простой способ использовать addext — клонировать или загрузить этот репозиторий, а затем запустить скрипт с python3/path/to/addext.py [ options] .

Если вы выберете этот путь, установите дополнительные зависимости библиотеки Python: pip install -r requirements.txt или pip install inquirer (для этого могут потребоваться разрешения sudo).

Установить через PyPI

addext также можно установить с помощью pip install addext . Это установит сценарий в каталог /usr/local/bin (при условии установки Linux/macOS), так что addext можно будет вызвать из любого места, просто addext.py [options] .

Обратите внимание, что после установки вам нужно будет загрузить или создать файл PRONOM JSON для использования с addext .

PRONOM JSON файл

Описание

Файл PRONOM JSON — это упрощенное представление информации из PRONOM, необходимой для работы addext. Файл содержит объект для каждого формата, описанного с помощью PRONOM ID (PUID), структурированного, как в следующем примере:

  "fmt/858": {"file_format": "Navisworks  Документ "," версия ":" 2010 "," file_extensions ": [" nwd "," nwc "]}  

Обновление PRONOM Файл JSON

pronom_v95.json в настоящее время обновлен до версии PRONOM v95.

Чтобы создать новый файл PRONOM JSON (например, после нового выпуска PRONOM):

  • Получите экспорт PRONOM XML из репозитория релиза Росс Спенсер для The Skeleton Test Suite, который предоставляет набор DOI для архивов выпусков PRONOM.
  • Запустите addext/pronom_xml_to_json.py , чтобы создать новый файл PRONOM JSON из экспорт XML: python3 pronom_xml_to_json.py/путь/к/pronom/export/каталог pronom.json

Creators

  • Канадский центр архитектуры
  • Тесса Уолш

Этот проект изначально разрабатывался в 2016–2017 гг. для Канадского центра архитектуры, автор — Тесса Уолш, специалист по цифровым архивам, в рамках разработки проекта «Археология цифровых технологий».

Оцените статью
logicle.ru
Добавить комментарий