Как указать путь к файлу

Обновлено: 05.07.2024

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

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

Терминал Linux

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

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

Файлам и папкам в Linux даются имена, содержащие обычные компоненты, такие как буквы, цифры и другие символы на клавиатуре. Но когда файл находится внутри папки или папка внутри другой папки, символ / показывает связь между ними. Вот почему вы часто видите файлы, перечисленные в формате /usr/bin/python3 или /etc/os-release. Косая черта указывает, что один элемент хранится внутри предшествующего ему элемента.

Каждый файл и папка в системе POSIX могут быть представлены в виде пути. Если у меня есть файл penguin.jpg в папке «Изображения» в моем домашнем каталоге, а мое имя пользователя — seth, то путь к файлу может быть выражен как /home/seth/Pictures/penguin.jpg.

Большинство пользователей в основном взаимодействуют со своим домашним каталогом, поэтому в качестве сокращения используется символ тильды (~). Это означает, что я могу представить свой пример изображения пингвина либо как /home/seth/Pictures/penguin.jpg, либо как ~/Pictures/penguin.jpg.

Практика делает совершенным

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

Если сомневаетесь, перетащите

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

Диспетчер файлов Dolphin

Если вы используете терминал, полезно знать, что современные терминалы, в отличие от телетайпов, которые они эмулируют, могут принимать файлы путем перетаскивания. Например, когда вы копируете файл на сервер через SSH и не знаете, как указать путь к файлу, попробуйте перетащить файл из диспетчера файлов с графическим интерфейсом в терминал. Объект GUI, представляющий файл, преобразуется в путь к текстовому файлу в терминале:

Терминалы принимают операции перетаскивания

Не тратьте время на ввод предположений. Просто перетащите.

Таб — твой друг

В системе, которая известна тем, что избегает трехбуквенных команд вместо двух или даже однобуквенных команд, будьте уверены, что ни один опытный пользователь POSIX никогда не вводит все подряд. В оболочке Bash клавиша Tab означает автозаполнение, а автозаполнение никогда не лжет. Например, чтобы ввести пример местоположения файла penguin.jpg, вы можете начать с:

а затем нажмите клавишу Tab. Пока есть только один элемент, начинающийся с Pi, папка «Изображения» заполняется автоматически.

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

Предположим, что вы в порыве ночной реорганизации переместили файл penguin.jpg из папки ~/Pictures в каталог ~/Spheniscidae. Вы засыпаете и просыпаетесь обновленным, но без памяти, которую вы реорганизовали, поэтому вы пытаетесь скопировать ~/Pictures/penguin.jpg на свой веб-сервер в терминале, используя автозаполнение.

Сколько бы вы ни нажимали клавишу Tab, Bash отказывается от автозаполнения. Нужный вам файл просто не существует в том месте, где вы думаете, что он существует. Эта функция может быть полезна, когда вы пытаетесь указать на веб-странице шрифт или файл CSS, вы были уверены в том, что загрузили, или когда вы указываете компилятору библиотеку, которую вы 100% уверен, что вы уже скомпилировали.

Это не автозаполнение вашей бабушки

Если вам нравится автозаполнение Bash, вы начнете насмехаться над ним, как только попробуете автозаполнение в Zsh. Оболочка Z вместе с сайтом Oh My Zsh обеспечивает динамичный опыт, наполненный подключаемыми модулями для определенных языков программирования и сред, визуальными темами, наполненными полезными отзывами, и активным сообществом увлеченных пользователей оболочки:

Скромная конфигурация Zsh.

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

Больше практики

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

Путь к файлу описывает расположение файла в структуре папок веб-сайта.

Примеры пути к файлу

ПутьОписание

Файл "picture.jpg" находится в той же папке, что и текущая страница

Файл "picture.jpg" находится в папке images в текущей папке

Файл "picture.jpg" находится в папке с изображениями в корне текущей сети

Файл "picture.jpg" находится в папке на один уровень выше текущей папки

Пути к файлам HTML

Путь к файлу описывает расположение файла в структуре папок веб-сайта.

Пути к файлам используются при создании ссылок на внешние файлы, например:

  • Веб-страницы
  • Изображения
  • Таблицы стилей
  • JavaScripts

Абсолютные пути к файлам

Абсолютный путь к файлу — это полный URL-адрес файла:

Пример

Гора

Тег описан в главе "Изображения HTML".

Относительные пути к файлам

Относительный путь к файлу указывает на файл относительно текущей страницы.

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

Пример

Гора

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

Пример

Гора

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

Пример

Гора

Рекомендации

Рекомендуется использовать относительные пути к файлам (если это возможно).

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

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

Путь обычно представляет собой строку типа C:\Folder . Но в Python символ \ может интерпретироваться как escape-символ.

В этом руководстве рассказывается, как задать путь к файлу в Python на устройствах Windows.

Используйте символ \ для указания пути к файлу в Python

Мы можем использовать символ \\ вместо одного символа \, чтобы указать путь в Python.

Синтаксис для этого показан ниже.

Использование необработанных строковых литералов для указания пути к файлу в Python

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

Чтобы создать необработанную строку, мы должны написать символ r перед кавычками для строки.

Синтаксис для использования необработанных строковых литералов показан ниже.

Используйте функцию os.path() для указания пути к файлу в Python

Мы также можем использовать функцию path() модуля os для настройки пути. Преимущество использования функции path() заключается в том, что мы не указываем полный путь к файлу. Мы должны указать имя каталога и имя файла.

Этот метод сам выберет правильную конфигурацию для ОС, которую вы используете на своем устройстве. Мы должны использовать функцию join() для объединения каталога и имени файла.

В приведенном выше примере os.sep указывает разделитель ОС по умолчанию.

Используйте функцию pathlib.Path() для указания пути к файлу в Python

В Python 3.4 и более поздних версиях мы можем использовать функцию Path() из модуля pathlib, чтобы указать пути к файлам в Python. Его использование аналогично функции os.path().

См. приведенный ниже код.

Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».

Статья по теме — Путь Python


сообщить об этом объявлении

Файловая система хранит и упорядочивает файлы на каком-либо носителе, как правило, на одном или нескольких жестких дисках, таким образом, чтобы их можно было легко извлечь. Большинство используемых сегодня файловых систем хранят файлы в древовидной (или иерархической) структуре. На вершине дерева находится один (или несколько) корневых узлов. В корневом узле находятся файлы и каталоги (папки в Microsoft Windows). Каждый каталог может содержать файлы и подкаталоги, которые, в свою очередь, могут содержать файлы и подкаталоги и т. д., потенциально до почти безграничной глубины.

В этом разделе рассматриваются следующие вопросы:

Что такое путь?

На следующем рисунке показано примерное дерево каталогов, содержащее один корневой узел. Microsoft Windows поддерживает несколько корневых узлов. Каждый корневой узел сопоставляется с томом, например C:\ или D:\ . ОС Solaris поддерживает один корневой узел, который обозначается косой чертой / .

Пример структуры каталога

Файл идентифицируется по его пути в файловой системе, начиная с корневого узла. Например, файл statusReport на предыдущем рисунке описывается следующей нотацией в ОС Solaris:

В Microsoft Windows отчет о состоянии описывается следующими обозначениями:

Символ, используемый для разделения имен каталогов (также называемый разделителем), зависит от файловой системы: ОС Solaris использует прямую косую черту ( / ), а Microsoft Windows использует обратную косую черту ( \).

Относительно или абсолютно?

Путь может быть относительным или абсолютным. Абсолютный путь всегда содержит корневой элемент и полный список каталогов, необходимых для поиска файла. Например, /home/sally/statusReport — это абсолютный путь. Вся информация, необходимая для поиска файла, содержится в строке пути.

Для доступа к файлу относительный путь необходимо объединить с другим путем. Например, joe/foo — это относительный путь. Без дополнительной информации программа не сможет надежно найти каталог joe/foo в файловой системе.

Символические ссылки

Объекты файловой системы чаще всего представляют собой каталоги или файлы. С этими предметами знаком каждый. Но некоторые файловые системы также поддерживают символические ссылки. Символическая ссылка также называется символической ссылкой или мягкой ссылкой.

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

На следующем рисунке logFile кажется пользователю обычным файлом, но на самом деле это символическая ссылка на каталог dir/logs/HomeLogFile . HomeLogFile является целью ссылки.

Пример символической ссылки.

Символическая ссылка обычно прозрачна для пользователя. Чтение или запись символической ссылки аналогичны чтению или записи любого другого файла или каталога.

Фраза разрешение ссылки означает замену символической ссылки фактическим местоположением в файловой системе. В этом примере разрешение logFile дает dir/logs/HomeLogFile .

В реальных сценариях большинство файловых систем широко используют символические ссылки. Иногда небрежно созданная символическая ссылка может привести к циклической ссылке. Циклическая ссылка возникает, когда цель ссылки указывает на исходную ссылку. Циклическая ссылка может быть косвенной: каталог a указывает на каталог b, который указывает на каталог c, содержащий подкаталог, указывающий обратно на каталог a. Циклические ссылки могут вызвать хаос, когда программа рекурсивно перемещается по структуре каталогов. Однако этот сценарий был учтен и не приведет к бесконечному циклу вашей программы.

На следующей странице обсуждается сердцевина файлового ввода-вывода в языке программирования Java — класс Path.

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