Каким образом можно открыть файл: способы в Windows, Linux, macOS и в коде

Каким образом можно открыть файл: способы в Windows, Linux, macOS и в коде Полезное

Открыть файл можно несколькими способами: двойным щелчком по значку, через контекстное меню (пункты «Открыть» и «Открыть с помощью»), клавишей Enter на выделенном файле (в Windows и Linux), командой «Файл — Открыть» внутри программы, перетаскиванием в окно программы и командой в терминале. В программировании файл открывает сам код — в Python для этого служит функция open().

За словом «открыть» стоят три разных действия, и их полезно не смешивать:

  • открыть документ — система подбирает программу по расширению файла и передает ей файл;
  • запустить программу — файл сам является программой (.exe, скрипт), и система выполняет его;
  • открыть файл в коде — программа просит у операционной системы доступ к содержимому, чтобы читать или записывать данные.

Ниже — все способы по порядку, затем разбор ситуации «файл не открывается» и открытие файла в Python. Команды терминала и меню описаны для Windows 11, macOS 26 и Ubuntu 24.04; код проверен на Python 3.14.7 30 сентября 2026 года.

Способы открыть файл в графическом интерфейсе

Способ Что происходит Когда удобен
Двойной щелчок левой кнопкой мыши по значку Файл открывается в программе по умолчанию для его расширения Обычный случай
Выделить файл и нажать Enter (Windows, большинство файловых менеджеров Linux) То же, что двойной щелчок Работа с клавиатуры
Правая кнопка — «Открыть» То же, что двойной щелчок Когда двойной щелчок настроен иначе
Правая кнопка — «Открыть с помощью» Вы сами выбираете программу из списка Нужна не та программа, что по умолчанию
Меню программы «Файл — Открыть» (обычно Ctrl+O, в macOS Cmd+O) Программа показывает окно выбора файла Программа уже запущена
Перетащить файл в окно программы Программа открывает переданный файл Файл и окно рядом на экране

Два уточнения, на которых часто ошибаются. В macOS клавиша Enter в Finder не открывает файл, а включает переименование; открыть выделенный файл можно сочетанием Cmd+O или Cmd+стрелка вниз. А пункт «Открыть с помощью» в Finder называется «Открыть в приложении».

Программа по умолчанию определяется расширением — частью имени после последней точки: .docx, .pdf, .txt. Если расширение системе незнакомо, Windows сама покажет окно выбора приложения. Назначить программу постоянно можно там же: «Открыть с помощью» — «Выбрать другое приложение» — отметить «Всегда».

Исполняемые файлы открываются иначе: двойной щелчок не показывает содержимое, а запускает программу. В Windows у них есть еще пункт контекстного меню «Запуск от имени администратора» — он дает программе повышенные права, поэтому использовать его стоит только для программ из надежного источника.

Как открыть файл из командной строки

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

Система Открыть в программе по умолчанию Показать текст в терминале
Windows, cmd start "" "C:\Users\anna\report.pdf" type notes.txt
Windows, PowerShell Invoke-Item "C:\Users\anna\report.pdf" Get-Content notes.txt
macOS open report.pdf cat notes.txt
Linux с графической оболочкой xdg-open report.pdf cat notes.txt или less notes.txt

Пустые кавычки после start в cmd нужны потому, что первый аргумент в кавычках команда считает заголовком окна, а не путем. В macOS можно выбрать программу явно: open -a TextEdit notes.txt. Команда xdg-open работает только там, где есть графическая среда: на сервере без рабочего стола файл смотрят через cat, less или редактор.

Если файла по указанному пути нет, система сообщает об этом прямо. Вот ответы macOS (команда open) и Ubuntu (команда cat) на несуществующий nofile.txt:

The file /Users/anna/nofile.txt does not exist.
cat: nofile.txt: No such file or directory

Относительный путь вроде notes.txt ищется от текущего каталога терминала, а не от папки, где вы видите файл в проводнике. Как устроены абсолютные и относительные пути, разобрано в статье «Файлы и пути к ним», а запуск программ из cmd — в статье про командную строку Windows.

Если файл не открывается

Диагностика идет от симптома.

Симптом Вероятная причина Что делать
Система спрашивает, чем открыть Нет программы для этого расширения Установить подходящую программу или выбрать ее в «Открыть с помощью»
Открывается не в той программе Другая программа назначена по умолчанию «Открыть с помощью» — выбрать нужную и отметить «Всегда»
«Файл не найден» Файл перемещен, удален или ярлык устарел Найти файл поиском по имени, проверить путь
«Отказано в доступе», Permission denied У вашей учетной записи нет права на чтение Обратиться к владельцу файла или администратору; не менять права массово
«Файл занят другим процессом» Файл открыт в другой программе Закрыть эту программу и повторить
Вместо текста непонятные символы Текст открыт не в той кодировке или файл не текстовый Выбрать кодировку в редакторе (UTF-8, Windows-1251)
Программа сообщает, что файл поврежден Файл скачан не полностью или расширение не соответствует содержимому Скачать заново; не переименовывать расширение наугад

Смена расширения вручную формат не меняет: photo.jpg, переименованный в photo.pdf, останется картинкой, просто система передаст его не той программе.

Осторожно с файлами из почты и мессенджеров

Двойной щелчок по исполняемому файлу запускает код с вашими правами. Вложение может маскироваться двойным расширением: invoice.pdf.exe при скрытых расширениях выглядит как invoice.pdf. Три привычки снижают риск, хотя полной защиты не дают:

  1. Включить показ расширений: в проводнике Windows 11 — «Просмотреть» — «Показать» — «Расширения имен файлов».
  2. Не запускать .exe, .scr, .bat, .js, .lnk из писем и чатов, а в офисных документах не включать макросы, если вы их не ждали.
  3. Неожиданное вложение сначала проверить антивирусом и спросить отправителя по другому каналу связи, он ли это прислал.

Открытие файла в коде: функция open() в Python

Программа не щелкает мышью, она вызывает функцию. В Python это open(путь, режим, encoding=...): функция возвращает файловый объект, через который читают и пишут данные. Пример ниже создает файл во временном каталоге, дописывает строку, читает текст, читает байты и удаляет за собой все созданное.

from pathlib import Path
import tempfile

workdir = Path(tempfile.mkdtemp(prefix="open-demo-"))
path = workdir / "example.txt"

with open(path, "w", encoding="utf-8") as f:
    f.write("Первая строка\n")

with open(path, "a", encoding="utf-8") as f:
    f.write("Вторая строка\n")

with open(path, "r", encoding="utf-8") as f:
    for number, line in enumerate(f, start=1):
        print(number, line.rstrip("\n"))

with open(path, "rb") as f:
    print(f.read(8))

try:
    with open(path, "x", encoding="utf-8") as f:
        f.write("не запишется")
except FileExistsError as error:
    print("x:", type(error).__name__)

path.unlink()
workdir.rmdir()

Вывод программы:

1 Первая строка
2 Вторая строка
b'\xd0\x9f\xd0\xb5\xd1\x80\xd0\xb2'
x: FileExistsError

Что здесь важно. Конструкция with закрывает файл сама, даже если внутри блока произошла ошибка; без нее пришлось бы вызывать f.close() вручную. Режим "rb" вернул не буквы, а байты: восемь байт — это первые четыре буквы слова «Первая», потому что в UTF-8 русская буква занимает два байта. Режим "x" отказался открывать уже существующий файл.

Режимы открытия

Режим Что делает Если файла нет Если файл есть
"r" (по умолчанию) Чтение Ошибка FileNotFoundError Читает с начала
"w" Запись Создает файл Стирает содержимое сразу при открытии
"a" Дописывание в конец Создает файл Сохраняет содержимое, пишет в конец
"x" Создание нового файла Создает файл Ошибка FileExistsError
"r+" Чтение и запись Ошибка FileNotFoundError Не стирает, пишет поверх с начала

К любому режиму добавляется t (текст, по умолчанию) или b (байты): "rb", "wb". В текстовом режиме Python превращает байты в строки по кодировке, в двоичном отдает байты как есть — так открывают картинки, архивы и любые нетекстовые форматы. Деление условное: текстовый файл — это те же байты, просто их договорились читать как символы.

Самая дорогая ошибка новичка — режим "w" для файла с нужными данными: содержимое пропадает в момент открытия, еще до первой записи. Если файл не должен перезаписываться, используйте "x" или "a".

Зачем указывать encoding

Если encoding не указать, Python 3.14 и более ранние берут кодировку из настроек системы: в Linux и macOS это обычно UTF-8, в русской Windows — чаще всего cp1251. Один и тот же скрипт на разных машинах прочитает файл по-разному. В Python 3.15 (стабильный выпуск — октябрь 2026 года) умолчанием становится UTF-8. Явное encoding="utf-8" делает поведение одинаковым на любой версии. Файл, сохраненный в cp1251, при чтении как UTF-8 дает ошибку:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcf in position 0: invalid continuation byte

Исправление — назвать настоящую кодировку файла: open(path, encoding="cp1251").

Ошибка при открытии и ее обработка

Неверный вариант: код рассчитывает, что файл report.txt лежит в текущем каталоге.

with open("report.txt", encoding="utf-8") as f:
    print(f.read())

Фактический результат, когда файла нет:

FileNotFoundError: [Errno 2] No such file or directory: 'report.txt'

Исправление: перехватить типовые причины и показать полный путь, по которому Python искал файл.

from pathlib import Path

path = Path("report.txt")
try:
    with open(path, encoding="utf-8") as f:
        print(f.read())
except FileNotFoundError:
    print(f"Файла нет: {path.resolve()}")
except PermissionError:
    print(f"Нет прав на чтение: {path.resolve()}")
except IsADirectoryError:
    print(f"Это каталог, а не файл: {path.resolve()}")
except UnicodeDecodeError as error:
    print(f"Файл не в UTF-8: {error.reason}, байт {error.start}")

При запуске из каталога /w без файла программа печатает Файла нет: /w/report.txt — по полному пути сразу видно, что скрипт запущен не из той папки. Ветка IsADirectoryError срабатывает в Linux и macOS; Windows на попытку открыть каталог отвечает PermissionError. Это учебная обработка: если путь к файлу приходит от пользователя (форма на сайте, аргумент запроса), в рабочем коде дополнительно проверяют, что он не выходит за пределы разрешенного каталога.

Выводы

  • Каким образом можно открыть файл в ОС: двойной щелчок, Enter, контекстное меню «Открыть» и «Открыть с помощью», команда «Файл — Открыть» в программе, перетаскивание и команда терминала.
  • Программу для двойного щелчка система выбирает по расширению; переименование расширения формат не меняет.
  • В терминале файл открывают start (cmd), Invoke-Item (PowerShell), open (macOS) и xdg-open (Linux с графической оболочкой).
  • Если файл не открывается, причина почти всегда одна из четырех: нет программы, неверный путь, нет прав или не та кодировка.
  • В Python файл открывает open() внутри with; режим "w" стирает содержимое, а encoding="utf-8" стоит указывать явно.

Где применяется / связь с практикой

Освойте тему на практике

Вопросы «файл не открывается», «открывается не тем» и «отказано в доступе» — ежедневная работа первой линии технической поддержки: специалист по симптому определяет, дело в сопоставлении программы, в пути, в правах или в самом файле. Эти навыки вместе с основами Windows, Linux и сетей системно разбираются на курсе «Специалист по поддержке пользователей в IT».

Освойте тему на практике

Познакомиться с форматом занятий и преподавателями можно на открытых уроках Otus.

FAQ

Как открыть файл без расширения?
Через «Открыть с помощью» выбрать программу вручную; если формат неизвестен, начать с текстового редактора — по первым символам часто видно, что это за файл. В Linux и macOS тип по содержимому подсказывает команда file имя_файла.

Можно ли открыть один файл в двух программах одновременно?
На чтение — обычно да. На запись зависит от программы: офисные редакторы Windows блокируют документ, и вторая программа получит его только для чтения или сообщение, что файл занят.

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

OTUS Журнал
Скидка 5% 12-19 октября на курсы (popup)
Бесплатные открытые уроки (поп-ап)