Файл оригинален, чем открыт

Обновлено: 21.11.2024

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

Рассказ Тодда об автосохранении и сохранении копии

Откройте файл, который хотите скопировать

Инга использует созданный ею ежемесячный бюджетный отчет в формате Excel, чтобы отслеживать расходы своей команды на возмещение.

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

Сохраните копию, чтобы использовать ее в качестве отправной точки

Тодд заходит на сайт SharePoint команды Инги и открывает отчет о бюджете в Excel за последний месяц. Поскольку электронная таблица находится в облаке, Тодд знает, что автосохранение автоматически сохранит его изменения в файле, если он их внесет.

Поскольку он не хочет перезаписывать данные Инги, прежде чем вносить какие-либо изменения, он переходит в меню "Файл" и нажимает "Сохранить копию", чтобы загрузить копию отчета в свой OneDrive.

Внесите изменения в скопированный файл

После сохранения в OneDrive Office автоматически открывает файл в Excel. Теперь Тодд работает со своей версией отчета Инги и может вносить изменения, не беспокоясь об изменении ее данных.

Он меняет заголовок и номер центра затрат в отчете и очищает поля, которые ему нужны, чтобы он был готов к заполнению. Тодд знает, что с автосохранением в его отчете всегда будут сохраняться последние изменения.

Отменить нежелательные изменения с помощью истории версий

Тодд сделал несколько копий своего отчета о бюджете, готовясь к предстоящим месяцам. Однако он только что понял, что отчет, который он обновлял цифрами за следующий месяц, на самом деле является отчетом за последний месяц. Хотя его изменения автоматически сохраняются в его данных, Тодд не беспокоится, потому что он может восстановить предыдущую версию файла с помощью истории версий.

Он выбирает заголовок своего отчета о бюджете и выбирает Журнал версий. Он может видеть различные моменты времени, когда Excel создал версию своего файла, и он открывает версию без своих случайных изменений в новом окне. Теперь он может легко восстановить свой файл без каких-либо повреждений!

Каким может быть более упрощенное описание файловых дескрипторов по сравнению с Википедией? Зачем они нужны? Скажем, взять в качестве примера процессы оболочки и как это применимо к нему?

Содержит ли таблица процессов более одного файлового дескриптора. Если да, то почему?

Как насчет концепций stdin stdout stderr и т. д.? У меня есть экземпляр, например, открытый процесс браузера, и он открыл некоторые временные файлы для отображения моего html. Процесс использует один и тот же fd для чтения/записи? Также таблица процессов. в нем есть такие записи, как указатель fd0 указатель fd1 указатель fd2. значит ли это, что все эти файлы находятся в оперативной памяти? Зачем еще указатели?

Когда вы открываете файл, ОС создает поток для этого файла и подключает этот поток к открытому файлу, дескриптор фактически представляет этот поток. Точно так же есть некоторые потоки по умолчанию, созданные ОС. Эти потоки подключаются к вашему терминалу вместо файлов. Поэтому, когда вы пишете что-то в терминале, оно переходит в поток stdin и в ОС. И когда вы пишете команду «ls» на терминале, ОС записывает вывод в поток stdout. поток stdout подключен к терминалу вашего монитора, поэтому вы можете видеть вывод там.

Что касается примера с браузером, нет необходимости, чтобы браузер держал файлы открытыми. Это зависит от реализации браузера, но в большинстве случаев браузер открывает временный файл, записывает файл и закрывает файл, поэтому нет необходимости открывать файл, даже если веб-страница открыта. И дескриптор просто содержит информацию о файле и не обязательно хранит файл в оперативной памяти. Когда вы читаете данные из дескриптора, ОС считывает данные с жесткого диска. Информация в файловом дескрипторе просто представляет расположение файла на жестком диске и т. д..

Описатель файла в файл не является однозначным сопоставлением. Я мог бы открыть() один и тот же файл 4 раза и получить 4 разных файловых дескриптора. Каждый из них может использоваться (в зависимости от флагов, переданных в open()) для чтения, записи или того и другого. Что касается того, живет ли файл в оперативной памяти или на диске — это скрыто от вас ядром и его различными кэшами.В конечном итоге то, что есть в кеше, будет соответствовать тому, что есть на диске (для записи), и ядро ​​не вернется на диск, для чтения, если данные уже есть в кеше.

12 ответов 12

Проще говоря, когда вы открываете файл, операционная система создает запись для представления этого файла и хранения информации об этом открытом файле. Таким образом, если в вашей ОС открыто 100 файлов, то в ОС будет 100 записей (где-то в ядре). Эти записи представлены целыми числами, такими как (. 100, 101, 102.). Этот номер записи является дескриптором файла. Таким образом, это просто целое число, которое однозначно представляет открытый файл для процесса. Если ваш процесс открывает 10 файлов, в таблице процессов будет 10 записей для файловых дескрипторов.

Аналогично, когда вы открываете сетевой сокет, он также представляется целым числом и называется дескриптором сокета. Надеюсь, вы понимаете.

Кроме того, именно поэтому у вас могут закончиться файловые дескрипторы, если вы откроете много файлов одновременно. Это предотвратит запуск систем *nix, поскольку они постоянно открывают дескрипторы для заполнения /proc.

@ErbenMo: Нет, это может быть не то же самое. Когда вы открываете файл, операционная система назначит доступный FD, а когда вы его закроете, ОС освободит FD и может назначить этот FD другому файлу, открытому после этого. Это способ операционной системы отслеживать открытые файлы, и это не имеет ничего общего с конкретным файлом.

"Значит, это просто целое число, которое однозначно представляет открытый файл в операционной системе." Это неверно. Это целое число однозначно представляет открытый файл в процессе. Дескриптор файла 0, например, будет представлять один открытый файл в одном процессе и совершенно другой открытый файл в другом процессе.

@Tayyab: Думаю, ты ошибаешься. Файловые дескрипторы 0, 1 и 2 — это стандартный ввод, стандартный вывод и стандартная ошибка для каждого запущенного процесса. Успешный первоначальный вызов open() даст вам файловый дескриптор 3, даже если другой запущенный процесс имеет файловый дескриптор 3. См. определение POSIX для open(): «Функция open() должна возвращать файловый дескриптор для именованный файл с наименьшим файловым дескриптором, который в данный момент не открыт для этого процесса». (выделение добавлено).

@KeithThompson: Да, вы правы. На самом деле речь идет об уровне абстракции. На самом деле поддерживаются две таблицы, первая из которых предназначена для каждого процесса, а вторая — для всей системы. FD в таблице для каждого процесса (т.е. fdtable) не уникален для всей системы. Однако он сопоставляется с таблицей v-node, которая содержит уникальные записи для всей системы. Поэтому, когда вы вызываете функции fopen() и fileno() для проверки дескриптора, вы можете получить один и тот же номер FD в двух разных процессах, потому что он возвращает индекс fdtable для каждого процесса. Спасибо, что подняли тему!!

Дескриптор файла — это непрозрачный дескриптор, который используется в интерфейсе между пользователем и пространством ядра для идентификации ресурсов файла/сокета. Поэтому, когда вы используете open() или socket() (системные вызовы для взаимодействия с ядром), вам предоставляется файловый дескриптор, который является целым числом (на самом деле это индекс в структуре процессов u, но это не важно). ). Поэтому, если вы хотите напрямую взаимодействовать с ядром, используя системные вызовы read() , write() , close() и т. д., вы используете дескриптор файла.

На системные вызовы накладывается слой абстракции, которым является интерфейс stdio. Это обеспечивает больше функциональных возможностей/возможностей, чем базовые системные вызовы. Для этого интерфейса непрозрачный дескриптор, который вы получаете, представляет собой FILE* , который возвращается вызовом fopen(). Существует множество функций, использующих интерфейс stdio fprintf() , fscanf() , fclose() , которые упрощают вашу жизнь. В C stdin , stdout и stderr являются FILE* , которые в UNIX соответственно сопоставляются с файловыми дескрипторами 0 , 1 и 2 .

Услышьте это из первых уст: APUE (Ричард Стивенс).
Для ядра все открытые файлы называются файловыми дескрипторами. Дескриптор файла — это неотрицательное число.

Когда мы открываем существующий файл или создаем новый файл, ядро ​​возвращает процессу дескриптор файла. Ядро поддерживает таблицу всех дескрипторов открытых файлов, которые используются. Распределение файловых дескрипторов обычно последовательное, и они назначаются файлу как следующий свободный файловый дескриптор из пула свободных файловых дескрипторов. Когда мы закрываем файл, дескриптор файла освобождается и становится доступным для дальнейшего выделения.
Подробнее см. на этом изображении:

Когда мы хотим прочитать или записать файл, мы идентифицируем файл с дескриптором файла, который был возвращен вызовом функции open() или create(), и используем его в качестве аргумента для чтения() или записи(). .
Согласно соглашениям, системные оболочки UNIX связывают дескриптор файла 0 со стандартным вводом процесса, дескриптор файла 1 со стандартным выводом и дескриптор файла 2 со стандартной ошибкой.
Описатель файла находится в диапазоне от 0 до OPEN_MAX. Максимальное значение дескриптора файла можно получить с помощью ulimit -n . Для получения дополнительной информации прочитайте 3-ю главу книги APUE.

Привет! Если вы хотите научиться работать с файлами в Python, то эта статья для вас. Работа с файлами — важный навык, который должен освоить каждый разработчик Python, так что давайте начнем.

Из этой статьи вы узнаете:

  • Как открыть файл.
  • Как прочитать файл.
  • Как создать файл.
  • Как изменить файл.
  • Как закрыть файл.
  • Как открывать файлы для нескольких операций.
  • Как работать с методами файлового объекта.
  • Как удалить файлы.
  • Как работать с контекстными менеджерами и чем они полезны.
  • Как обрабатывать исключения, которые могут возникнуть при работе с файлами.
  • и многое другое!

Начнем! ✨

🔹 Работа с файлами: базовый синтаксис

Одной из наиболее важных функций, которые вам понадобятся при работе с файлами в Python, является open() , встроенная функция, которая открывает файл и позволяет вашей программе использовать его и работать с ним.

Это основной синтаксис:

💡 Совет. Это два наиболее часто используемых аргумента для вызова этой функции. Есть шесть дополнительных необязательных аргументов. Чтобы узнать о них больше, прочитайте эту статью в документации.

Первый параметр: файл

Первым параметром функции open() является файл, абсолютный или относительный путь к файлу, с которым вы пытаетесь работать.

Обычно мы используем относительный путь, который указывает, где находится файл относительно местоположения скрипта (файла Python), вызывающего функцию open().

Например, путь в этом вызове функции:

Содержит только имя файла. Это можно использовать, когда файл, который вы пытаетесь открыть, находится в том же каталоге или папке, что и скрипт Python, например:

Но если файл находится во вложенной папке, например:

Файл names.txt находится в папке "data"

Затем нам нужно использовать определенный путь, чтобы сообщить функции, что файл находится в другой папке.

В этом примере это будет путь:

Обратите внимание, что мы сначала пишем data/ (имя папки, за которым следует символ / ), а затем name.txt (имя файла с расширением).

💡 Совет. Три буквы .txt, следующие за точкой в ​​файле name.txt, — это «расширение» файла или его тип. В этом случае .txt указывает, что это текстовый файл.

Второй параметр: режим

Второй параметр функции open() — это режим, строка из одного символа. Этот единственный символ в основном сообщает Python, что вы планируете делать с файлом в своей программе.

  • Читать ("r").
  • Добавить ("a")
  • Напишите ("w")
  • Создать ( "x" )

Вы также можете открыть файл в:

Чтобы использовать текстовый или двоичный режим, вам необходимо добавить эти символы в основной режим. Например: "wb" означает запись в двоичном режиме.

💡 Совет: Режимы по умолчанию: чтение ("r") и текст ("t"), что означает "открыть для чтения текста" ("rt"), поэтому указывать их в open( ), если вы хотите их использовать, потому что они назначаются по умолчанию. Вы можете просто написать open() .

Почему режимы?

Для Python действительно имеет смысл предоставлять только определенные разрешения в зависимости от того, что вы планируете делать с файлом, верно? Почему Python должен позволять вашей программе делать больше, чем необходимо? Именно поэтому существуют режимы.

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

🔸 Как прочитать файл

Теперь, когда вы больше знаете об аргументах, которые принимает функция open(), давайте посмотрим, как можно открыть файл и сохранить его в переменной для использования в программе.

Это основной синтаксис:

Мы просто присваиваем возвращаемое значение переменной. Например:

Я знаю, что вы можете спросить: какой тип значения возвращает open()?

Ну, файловый объект.

Давайте немного поговорим о них.

Файловые объекты

Согласно документации Python файловый объект это:

Объект, предоставляющий ориентированный на файл API (с такими методами, как read() или write()) базовому ресурсу.

По сути, это говорит нам о том, что файловый объект — это объект, который позволяет нам работать и взаимодействовать с существующими файлами в нашей программе Python.

Файловые объекты имеют такие атрибуты, как:

Теперь давайте посмотрим, как можно получить доступ к содержимому файла через файловый объект.

Способы чтения файла

Чтобы мы могли работать с файловыми объектами, нам нужен способ "взаимодействовать" с ними в нашей программе, и это именно то, что делают методы. Давайте посмотрим на некоторые из них.

Прочитать()

Первый метод, о котором вам нужно узнать, это read() , который возвращает все содержимое файла в виде строки.

Вот пример:

Вы можете использовать функцию type(), чтобы убедиться, что значение, возвращаемое функцией f.read(), является строкой:

Да, это строка!

В данном случае был напечатан весь файл, потому что мы не указали максимальное количество байтов, но мы можем сделать и это.

Вот пример:

Возвращаемое значение ограничено этим количеством байтов:

❗️Важно: файл необходимо закрыть после завершения задачи, чтобы освободить ресурсы, связанные с файлом. Для этого вам нужно вызвать метод close(), например:

Readline() и Readlines()

Вы можете прочитать файл построчно с помощью этих двух методов. Они немного отличаются, поэтому давайте рассмотрим их подробнее.

readline() читает одну строку файла, пока не достигнет конца этой строки. Завершающий символ новой строки ( \n ) сохраняется в строке.

💡 Совет. При желании вы можете указать размер, максимальное количество символов, которое вы хотите включить в результирующую строку.

Это первая строка файла.

Напротив, readlines() возвращает список со всеми строками файла в виде отдельных элементов (строк). Это синтаксис:

Обратите внимание, что в конце каждой строки, кроме последней, есть символ \n (символ новой строки).

💡 Совет. Тот же список можно получить с помощью list(f) .

Вы можете работать с этим списком в своей программе, назначив его переменной или используя его в цикле:

Мы также можем перебирать f напрямую (файловый объект) в цикле:

Это основные методы, используемые для чтения файловых объектов. Теперь давайте посмотрим, как вы можете создавать файлы.

🔹 Как создать файл

Если вам нужно создать файл "динамически" с помощью Python, вы можете сделать это в режиме "x".

Посмотрим, как. Это основной синтаксис:

Вот пример. Это мой текущий рабочий каталог:

Если я запускаю эту строку кода:

Создается новый файл с таким именем:

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

💡 Совет. Изначально файл будет пустым, пока вы его не измените.

Любопытно, что если вы попытаетесь запустить эту строку еще раз, а файл с таким именем уже существует, вы увидите такую ​​ошибку:

Согласно документации Python, это исключение (ошибка выполнения):

Теперь, когда вы знаете, как создать файл, давайте посмотрим, как вы можете его изменить.

🔸 Как изменить файл

Чтобы изменить (записать) файл, вам нужно использовать метод write(). У вас есть два способа сделать это (добавить или написать) в зависимости от режима, который вы выбрали для его открытия. Давайте рассмотрим их подробно.

Добавить

"Добавление" означает добавление чего-либо в конец другого элемента. Режим "a" позволяет вам открыть файл, чтобы добавить к нему некоторое содержимое.

Например, если у нас есть этот файл:

И мы хотим добавить к нему новую строку, мы можем открыть ее, используя режим "a" (добавить), а затем вызвать метод write(), передав содержимое, которое мы хотим добавить, в качестве аргумента.

Это основной синтаксис для вызова метода write():

Вот пример:

💡 Совет: обратите внимание, что я добавляю \n перед строкой, чтобы указать, что я хочу, чтобы новая строка отображалась как отдельная строка, а не как продолжение существующей строки.

Это файл сейчас, после запуска скрипта:

💡 Совет: новая строка может не отображаться в файле, пока не запустится функция f.close().

Написать

Иногда может потребоваться удалить содержимое файла и полностью заменить его новым содержимым. Вы можете сделать это с помощью метода write(), если вы открываете файл в режиме "w".

Здесь у нас есть этот текстовый файл:

Если я запускаю этот скрипт:

Вот результат:

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

💡 Совет. Метод write() возвращает количество написанных символов.

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

Вот пример. Это исходный файл:

Если мы запустим этот скрипт:

Строки добавляются в конец файла:

Открыть файл для нескольких операций

Теперь вы знаете, как создавать, читать и записывать в файл, но что, если вы хотите сделать несколько вещей в одной программе? Давайте посмотрим, что произойдет, если мы попытаемся сделать это с помощью режимов, которые вы уже изучили:

Если вы открываете файл в режиме "r" (чтение), а затем пытаетесь в него записать:

Вы получите эту ошибку:

Аналогично, если вы открываете файл в режиме "w" (запись), а затем пытаетесь его прочитать:

Вы увидите эту ошибку:

То же самое произойдет с режимом "a" (добавление).

Как мы можем это решить? Чтобы иметь возможность прочитать файл и выполнить другую операцию в той же программе, нужно добавить к режиму символ "+", вот так:

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

Иногда файлы больше не нужны. Давайте посмотрим, как вы можете удалять файлы с помощью Python.

🔹 Как удалить файлы

Чтобы удалить файл с помощью Python, необходимо импортировать модуль os, который содержит функции, взаимодействующие с вашей операционной системой.

💡 Совет. Модуль – это файл Python со связанными переменными, функциями и классами.

В частности, вам понадобится функция remove(). Эта функция принимает путь к файлу в качестве аргумента и автоматически удаляет файл.

Давайте рассмотрим пример. Мы хотим удалить файл с именем sample_file.txt .

Для этого пишем такой код:

  • Первая строка: import os называется "оператором импорта".Этот оператор записывается в начале вашего файла и дает вам доступ к функциям, определенным в модуле os.
  • Вторая строка: os.remove("sample_file.txt") удаляет указанный файл.

💡 Совет: вы можете использовать абсолютный или относительный путь.

Теперь, когда вы знаете, как удалять файлы, давайте рассмотрим интересный инструмент. Менеджеры контекста!

🔸 Познакомьтесь с контекстными менеджерами

Контекстные менеджеры — это конструкции Python, которые значительно упростят вашу жизнь. Используя их, вам не нужно помнить о закрытии файла в конце вашей программы, и у вас есть доступ к файлу в той части программы, которую вы выберете.

Синтаксис

Это пример диспетчера контекста, используемого для работы с файлами:

💡 Совет. Тело контекстного менеджера должно быть с отступом, точно так же, как мы делаем отступы для циклов, функций и классов. Если код не имеет отступа, он не будет считаться частью менеджера контекста.

После завершения тела менеджера контекста файл закрывается автоматически.

Пример

Вот пример:

Этот менеджер контекста открывает файл names.txt для операций чтения/записи и назначает этот файловый объект переменной f . Эта переменная используется в теле диспетчера контекста для ссылки на файловый объект.

Пытаюсь снова прочитать

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

Посмотрим, что произойдет:

Эта ошибка возникает, потому что мы пытаемся прочитать закрытый файл. Потрясающе, правда? Всю тяжелую работу за нас делает менеджер контекста, он удобочитаем и лаконичен.

🔹 Как обрабатывать исключения при работе с файлами

При работе с файлами могут возникать ошибки. Иногда у вас может не быть необходимых разрешений для изменения или доступа к файлу, или файл может даже не существовать.

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

Давайте рассмотрим некоторые наиболее распространенные исключения (ошибки времени выполнения), которые могут возникнуть при работе с файлами:

ФайлНеНайденОшибка

Согласно документации Python, это исключение:

Например, если файл, который вы пытаетесь открыть, не существует в вашем текущем рабочем каталоге:

Вы увидите эту ошибку:

Давайте разберем эту ошибку построчно:

", строка 8, в . Эта строка сообщает вам, что ошибка возникла, когда код в файле, расположенном в

💡 Совет: Python очень подробно описывает сообщения об ошибках, верно? Это огромное преимущество в процессе отладки.

Ошибка разрешения

Это еще одно распространенное исключение при работе с файлами. Согласно документации Python, это исключение:

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

Это исключение возникает, когда вы пытаетесь прочитать или изменить файл, у которого нет прав доступа. Если вы попытаетесь это сделать, то увидите следующую ошибку:

IsADirectoryError

Согласно документации Python, это исключение:

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

Как обрабатывать исключения

Для обработки этих исключений можно использовать оператор try/except. С помощью этого оператора вы можете «указать» своей программе, что делать в случае чего-то непредвиденного.

Это основной синтаксис:

Здесь вы можете увидеть пример с FileNotFoundError:

Это в основном говорит:

  • Попробуйте открыть файл named.txt .
  • Если выдается ошибка FileNotFoundError, не происходит сбой! Просто напечатайте описательное заявление для пользователя.

💡 Совет: вы можете выбрать, как поступить в данной ситуации, написав соответствующий код в блоке исключений. Возможно, вы могли бы создать новый файл, если он еще не существует.

Чтобы автоматически закрыть файл после выполнения задачи (независимо от того, было ли возбуждено исключение в блоке try или нет), вы можете добавить блок finally.

Это пример:

Существует множество способов настроить оператор try/except/finally, и вы даже можете добавить блок else для запуска блока кода, только если в блоке try не возникло никаких исключений.

💡 Совет. Чтобы узнать больше об обработке исключений в Python, вы можете прочитать мою статью «Как обрабатывать исключения в Python: подробное визуальное введение».

🔸 Резюме

  • С помощью Python можно создавать, читать, записывать и удалять файлы.
  • Файловые объекты имеют собственный набор методов, которые вы можете использовать для работы с ними в своей программе.
  • Менеджеры контекста помогают работать с файлами и управлять ими, автоматически закрывая их после завершения задачи.
  • Обработка исключений является ключевым элементом Python. Общие исключения при работе с файлами включают FileNotFoundError , PermissionError и IsADirectoryError . Их можно обработать с помощью try/except/else/finally.

Я очень надеюсь, что моя статья вам понравилась и оказалась полезной. Теперь вы можете работать с файлами в своих проектах Python. Посмотрите мои онлайн-курсы. Следи за мной на Твиттере. ⭐️

Простое объяснение того, что такое файл AI и как открыть файл AI, даже если у вас нет Adobe Illustrator.

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

Файл AI — наиболее распространенный тип векторного изображения. Это проприетарный формат Adobe Illustrator, поэтому открыть AI-файлы может быть сложно, если у вас нет Illustrator. Как вы это сделаете, зависит от того, что вы хотите с этим делать.

Проще говоря, AI-файл легко открыть только для просмотра, но не так просто, если вы хотите его отредактировать. В этой статье мы рассмотрим оба сценария.

Как открыть AI-файлы без Illustrator

Если вам нужно открыть AI-файл для просмотра, но не для редактирования, существует множество программ, которые могут это сделать.

Параметры сохранения по умолчанию для AI-файлов в Illustrator означают, что файлы сохраняются с внедренным содержимым PDF. Это означает, что вы можете просматривать их в большинстве приложений, поддерживающих просмотр PDF.

  • В Windows необходимо изменить расширение файла AI на PDF. Выделите файл и нажмите F2 на клавиатуре. Добавьте PDF в конец имени файла и подтвердите изменение при появлении запроса. Теперь дважды щелкните файл, и он откроется в программе просмотра PDF по умолчанию.
  • На Mac вы можете просматривать AI-файлы в режиме предварительного просмотра без каких-либо изменений.
  • Вы также можете загружать AI-файлы на Google Диск и просматривать их там.

Если вы хотите добавить файл в большую коллекцию иллюстраций и иметь возможность легко просматривать его, попробуйте Adobe Bridge. Это одно из лучших бесплатных приложений Adobe, позволяющее открывать и просматривать файлы Illustrator.

Во всех этих случаях вы будете видеть плоское нередактируемое изображение.

Открытие AI-файлов в Photoshop или GIMP

Если вам нужно включить изображение AI в более крупное произведение искусства, не редактируя его напрямую, вы можете сделать это с помощью Photoshop или его бесплатного аналога GIMP.

Когда вы открываете изображение в этих приложениях, оно импортируется в формате PDF. Вы увидите диалоговое окно «Импорт», и обычно вы можете принять предложения по умолчанию.

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

Когда вы закончите, вы можете скопировать и вставить изображение на его собственный слой в другом произведении искусства или добавить дополнительные слои в этот файл. После этого вам придется сохранить его в другом формате.

Если ни один из вышеперечисленных вариантов не работает, попробуйте изменить расширение файла на EPS (другой формат векторного изображения), чтобы посмотреть, поможет ли это. Если нет, вам нужно преобразовать изображение в другой формат. Мы рассмотрим это далее.

Как редактировать AI-файлы без Illustrator

Когда вы загружаете шаблон Illustrator или получаете AI-файл, который нужно отредактировать, все становится сложнее. Существует не так много основных приложений, которые могут редактировать файлы AI изначально; обычно вам нужно сначала преобразовать его в другой формат.

Конвертировать AI в SVG или EPS онлайн

Если вы собираетесь конвертировать файл самостоятельно, вам следует преобразовать его в SVG. Это открытый формат с широкой поддержкой, хотя он предназначен в первую очередь для использования в Интернете. Если вы работаете с печатными изданиями, попробуйте EPS.

Чтобы преобразовать изображение:

CloudConvert можно использовать бесплатно для преобразования до 25 изображений в день. Вы можете заплатить за большее пособие, если вам это нужно.

Проблемы с редактированием преобразованных AI-файлов

Всякий раз, когда вы пытаетесь редактировать AI-файлы без Illustrator, вы должны знать о нескольких потенциальных проблемах.

  • Конверсии не всегда точны на 100 %. Это особенно верно, когда в исходном файле использовались функции или эффекты, уникальные для Illustrator.
  • Вы часто теряете информацию о слоях. Это может затруднить навигацию по сложным файлам, поскольку все элементы больше не будут помечены.
  • Вы часто не можете сохранить или экспортировать отредактированный файл в формате AI (и Illustrator также не может прочитать собственный формат вашего приложения для редактирования). Сохраняйте в формате SVG или EPS для максимальной совместимости.

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

Гравит Дизайнер PRO

Gravit Designer — отличная альтернатива Illustrator. Это облачное приложение, которое работает на Mac, Windows, Linux и Chrome OS или прямо в вашем браузере, поэтому вы можете редактировать и открывать AI-файлы в Интернете.

Для работы с AI-файлами их необходимо сначала преобразовать в формат SVG, как описано выше. После этого просто перетащите файл в окно Gravit Designer, чтобы открыть его.

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

У приложения очень современный и удобный интерфейс. Несмотря на то, что под капотом много возможностей, он делает работу с векторной графикой очень доступной. Это особенно удобно для таких вещей, как логотипы, значки и символы, и вы можете разблокировать дополнительные функции с помощью годовой подписки.

Загрузить: Gravit Designer PRO (доступна бесплатная пробная версия, требуется подписка)

Inkscape

Самой известной бесплатной альтернативой Illustrator является Inkscape с открытым исходным кодом. Он доступен для Windows, Mac и Linux.

Вы можете открывать AI-файлы непосредственно в Inkscape. Он не поддерживает перетаскивание, поэтому вам нужно перейти в меню «Файл» > «Открыть», а затем выбрать документ на жестком диске.

Затем файл импортируется в формате PDF. Как и в Photoshop, сначала необходимо выбрать некоторые параметры импорта — здесь вы можете принять значения по умолчанию, — но, в отличие от Photoshop, полученное изображение полностью редактируется.

Все части изображения сгруппированы вместе. Самый простой способ выбрать конкретный элемент — нажать F2, чтобы активировать инструмент «Редактировать узлы», а затем навести указатель мыши на изображение, пока нужная часть не будет выделена. Затем нажмите, чтобы выбрать его.

Вы не можете сохранять отредактированные изображения в формате AI. В качестве альтернативы поддерживаются форматы SVG и EPS.

Загрузить: Inkscape (бесплатно)

Конструктор сходства

Affinity Designer — это коммерческий пакет графического дизайна, доступный для Windows и Mac. Мы оцениваем его как лучшую альтернативу Adobe Illustrator. Он предназначен для тех же профессиональных пользователей, но это разовая покупка, а не подписка — она будет стоить вам менее трех месяцев эквивалентной подписки Adobe.

Программа может открывать файлы AI, если они были сохранены с содержимым PDF (по умолчанию в Illustrator). Это означает, что вы, как обычно, потеряете информацию о слое и не сможете сохранить файл в исходном формате.

Если вы хотите снова открыть отредактированное изображение в Illustrator, сохраните его в формате PDF, SVG или EPS.

Affinity Designer – это мощное и популярное программное обеспечение с внушительным списком функций. Это может быть хорошим вариантом для тех, кто хочет отказаться от Illustrator.

Загрузить: Affinity Designer (доступна бесплатная пробная версия)

Стандарт CorelDRAW

CorelDRAW Standard — это профессиональная программа графического дизайна для Windows. Он предназначен для энтузиастов графики и довольно дорог, хотя в долгосрочной перспективе все равно обходится дешевле, чем подписка на Illustrator, предлагая при этом полную поддержку искусственного интеллекта.

Вам нужно импортировать AI-файлы, выбрав «Файл» > «Импорт», а затем щелкнув настройки импорта (которые вы увидите только для файлов в формате PDF).

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

Когда вы закончите редактирование файла Illustrator, вы можете экспортировать его обратно в формат AI. Однако если вы использовали какие-либо функции, уникальные для CorelDRAW, они не будут поддерживаться в Illustrator.

Corel также выпускает Paint Shop Pro, альтернативу Photoshop. Это приложение может открывать и сохранять AI-файлы по умолчанию, но, как правило, менее подходит для работы с векторной графикой.

Загрузить: CorelDRAW Standard (доступна бесплатная пробная версия)

Эскиз

Sketch – это набор инструментов для дизайна, предназначенный только для Mac, и он входит в число лучших векторных программ для дизайнеров Mac с ограниченным бюджетом. Если вы хотите открывать и редактировать AI-файлы на Mac, это хороший выбор.

Программа имеет ограниченную встроенную поддержку файлов Illustrator. Вы можете открыть их, как и любой другой файл, но они будут отображаться только как один плоский слой. Это эквивалентно открытию в Photoshop и означает, что изображение нельзя редактировать.

Некоторые пользователи сообщили об успешном изменении расширения файла с AI на PDF. Выберите файл на своем компьютере и добавьте PDF в конец имени файла. Перетащите его в Sketch, чтобы получить редактируемое изображение. Однако ваши результаты здесь могут зависеть от сложности файла.

Более надежное решение – преобразовать файл в формат SVG с помощью CloudConvert. Поскольку вы не можете сохранять файлы в формате AI, это также лучший способ обеспечить возможность повторного открытия отредактированного файла в Illustrator в будущем.

Загрузить: Sketch (доступна бесплатная пробная версия)

Отказ от Adobe Illustrator

Открытие любого проприетарного файла вне приложения, для которого он предназначен, может привести к неоднозначным результатам. То же самое происходит, когда вы открываете PSD-файл без Photoshop.

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

Читайте также: