-1

Я читаю книгу Марка Лутца "Learning Python, 5th Edition", и автор делает комментарий о реестре Windows, который заставляет меня задуматься.

Вот предложение (из главы 3, раздел 2):

Поскольку более новые системы Windows используют реестр Windows (так называемые ассоциации имен файлов) для поиска программы, с которой запускается файл, вам не нужно явно указывать «python» или «py» в командной строке для запуска файла .py .

У меня есть два вопроса по этому поводу:

  1. Это полное описание реестра Windows?

(Я на 99% уверен, что это не так, поскольку автор не намеревался описывать реестр Windows.)

  1. Это точное описание реестра Windows?

Иные слова, все ли Windows , имя файл объединение фактически хранящихся в реестре Windows, или есть множество других мест , такие ассоциации могут быть сохранены?


(Если оно не является точным, как следует сформулировать это предложение, чтобы оно было полностью точным, не выходя за рамки замысла автора?)

3 ответа3

1

Это описание является точным, насколько это возможно, но оно неполное. Файловые ассоциации хранятся в реестре, но в реестре хранится гораздо больше.

На самом деле имя "реестр" происходит от дней Windows 3.x, где оно использовалось для регистрации ассоциаций файлов. Более поздние версии (95 и более поздние) использовали реестр для получения дополнительных данных, но первоначальной целью реестра была регистрация ассоциации файлов.

0

Позвольте мне изменить утверждение:

Поскольку более новые системы Windows используют настройки для отслеживания файла, которые являются настройками, хранящимися в реестре Windows (эти настройки или ассоциации с именами файлов), чтобы найти программу для запуска файла, вам не нужно называть «python» или «py» в командной строке, чтобы явно запустить файл .py.

Я чувствую, что это более точно. Системы Windows используют реестр Windows для этой цели. (Системы Windows также используют больше, чем просто реестр Windows. Например, из командной строки запустите ECHO %PATHEXT% . Это не меняет того факта, что реестр Windows является частью процесса, который может использовать система.)

Проверка того, как обрабатывать файл на основе части его имени, - это то, на что ссылаются, когда люди используют фразу "ассоциации с именами файлов". (В частности, общий подход заключается в проверке части имени файла, называемой "расширением".)

Я не хочу оспаривать (или подтверждать) ответ 0xDEADBEEF. Я чувствую, что «ассоциации имен файлов» кажется немного неясным или, возможно, не правильным, но остальное утверждение кажется точным. То, что не точно, думает, что Реестр Windows только о расширениях имени файла. Начиная с Windows 95, это не было близко к истине.

0

Другие ответы касались фактической цели реестра Windows, а также (очень полезно!) этимология. Я хочу сделать попытку переписать оригинальное предложение.

Вот оригинальное предложение:

Поскольку более новые системы Windows используют реестр Windows (так называемые ассоциации имен файлов) для поиска программы, с которой запускается файл, вам не нужно явно указывать «python» или «py» в командной строке для запуска файла .py .

Вот что я считаю более точной формулировкой:

Поскольку более новые системы Windows используют расширения имен файлов (зарегистрированные в реестре Windows), чтобы найти программу, с которой запускается файл, вам не нужно явно указывать «python» или «py» в командной строке для запуска файла .py. ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .