Абсолютный, относительный пути, пути UNC и URL—ArcMap
- пути
- Абсолютные и относительные пути
- Абсолютные и относительные пути в ArcMap
- Абсолютные и относительные пути в инструментах модели
- Абсолютные и относительные пути в инструментах-скриптах
- Какой смысл в использовании относительных путей вместо абсолютных?
- Пути UNC
- URL
- Путь к файлу подключения ArcSDE
Пути используются для поиска данных и наборов инструментов. В этом разделе представлено детальное описание путей, приведено определение видов путей и показан порядок работы с ними в ArcGIS.
пути
Путь
Путь – это разделенное символами обратной косой черты имя директории или файла. Директория – это тоже самое, что и папка в проводнике Windows.
Пример | Описание |
---|---|
E:\Data\MyStuff | Путь, оканчивающийся на имени каталога. |
E:\Data\MyStuff\roads.shp | Путь, оканчивающийся на имени файла. |
Системный путь и путь каталога
ArcGIS оперирует термином «путь каталога» или «путь ArcCatalog». Путь каталога – это путь, распознаваемый только ArcGIS. К примеру, рассмотрим такой путь:
D:\Data\Final\Infrastructure.gdb\EastValley\powerlines
Класс объектов с именем powerlines находится в наборе классов EastValley в файловой базе геоданных Infrastructure. Этот путь не является корректным системным путем с точки зрения операционной системы, поскольку Windows не распознает наборы и классы пространственных данных, расположенные внутри файловой базы геоданных.
Рабочая область и базовое имя
Пути каталога состоят из двух частей: рабочей области и базового имени, как показано ниже:
Прямые и обратные косые черты
В Windows обратная косая черта (\) используется в качестве разделителя при указании пути. UNIX-системы используют прямую косую черту (/). В ArcGIS не имеет значения, какая косая черта используется при указании пути. ArcGIS всегда будет правильно считывать путь, какой бы знак в нем не использовался.
Обратная косая черта в Python
Языки программирования берут свое начало в UNIX, а язык С, как и Python, рассматривает обратную косую черту (\) как знак перехода. К примеру, \n соответствует возврату каретки. Поскольку пути могут содержать обратные косые черты, необходимо избегать их распознавания как знака перехода. Обычным делом является использование двойной обратной косой черты, например:
the_path = "E:\\data\\telluride\\newdata.gdb\\slopes"
Ниже показан другой вариант преобразования путей в строки Python с помощью с помощью префикса r. Благодаря этому Python будет игнорировать обратные косые черты.
the_path = r"E:\data\telluride\newdata.gdb\slopes"
Абсолютные и относительные пути
Абсолютный, или полный путь
Абсолютный (или полный) путь начинается с буквы диска, за которой следует двоеточие, например, D:.
Относительный путь
Относительный путь ссылается на местоположение относительно текущего каталога. Относительные пути используют два специальных символа: точку (.) и двойную точку (..), которые используются для перехода в текущий и родительский каталог, соответственно. Двойные точки используются для перехода на один уровень вверх. Одна точка означает текущую директорию.
В приведенной ниже структуре папок, предположим, что вы воспользовались Проводником Windows для перехода к D:\Data\Shapefiles\Soils. После перехода в данный каталог относительный путь будет использовать директорию D:\Data\Shapefiles\Soils в качестве текущей (пока вы не перейдете в новый каталог и он не станет текущей директорией). Текущую директорию иногда называют корневой папкой.
Если вы хотите перейти к папке Landuse из текущей директории (Soils), вам нужно ввести следующий текст в адресную строку Проводника Windows:
..\Landuse
Windows Explorer перейдет к D:\Data\Shapefiles\Landuse. Другие примеры использования папки D:\Data\Shapefiles\Landuse в качестве текущей представлены ниже:
Путь | |
---|---|
.. | D:\Data\Shapefiles |
..\.. | D:\Data |
..\..\Final | D:\Data\Final |
. | D:\Data\Shapefiles\Landuse – текущая папка. |
.\..\Soils | D:\Data\Shapefiles\Soils |
. .\..\.\Final\..\Shapefiles\.\Landuse | D:\Data\Shapefiles\Landuse |
Примечание:
Вы не сможете вводить относительные пути (с использованием точки и двойной точки) в приложениях ArcGIS.
Относительный путь не может распространяться на другие диски. К примеру, если ваша текущая папка находится на диске D, вы не можете использовать относительные пути для перехода к какой-либо директории на диске E.
Абсолютные и относительные пути в ArcMap
При создании документа ArcMap (либо ArcScene, либо ArcGlobe) вы можете указать, что сохраняться будут относительные пути. Для установки этой опции выберите Файл > Свойства документа карты. Здесь вы можете указать, будете ли вы хранить абсолютные или относительные пути.
При сохранении документа с относительными путями приложение преобразует пути в относительные (используя точку и двойную точку) в зависимости от того, где вы сохранили документ (т. е. от текущей директории). Например, если ваш документ хранится в D:\Maps\Posters\Newmap.mxd, а данные в одном из слоев — D:\Data\Final\Infrastructure.gdb\Streets, то в Newmap.mxd будет хранится ..\..\Data\Final\Infrastructure.gdb\Streets.
Когда вы снова открываете Newmap.mxd, ArcMap преобразует сохраненные относительные пути (с обозначением с помощью точки и двух точек) обратно в абсолютные, которые отображаются как источник данных слоя. Эта конвертация всегда зависит от местоположения документа карты (текущей директории).
Преобразуются только пути, относящиеся к одному диску
Относительные пути не могут менять диски. То есть в случае, если корневой каталог находится на диске D, вы не сможете использовать относительные пути для перехода к директории на диске E. Если вы сохраняете документ карты с использованием относительных путей, преобразованы и сохранены будут только относящиеся к одному и тому же диску.
Подробнее о ссылках на данные в документе карты
Абсолютные и относительные пути в инструментах модели
Так же как и в ArcMap вы можете указывать, что в инструментах модели будут сохраняться относительные пути.
Текущая папка, используемая для относительных путей, это папка, в которой находится соответствующий набор инструментов. Опция относительного пути конвертирует и сохраняет пути к:
- Данным модели
- Растровым изображениям модели
- Используемым в модели инструментам
- Файлам, на которые ссылаются метаданные инструмента и справка
- Таблицам стилей
- Файлам слоя (.lyr), использующимся для условных обозначений
- Компилированным файлам справки (.chm)
Для сохранения относительных путей щелкните правой кнопкой мыши инструмент модели, выберите Свойства , а затем перейдите на вкладку Общие. В нижней части диалогового окна включите опцию Сохранить относительные пути, как показано ниже.
Преобразуются только пути, относящиеся к одному диску
Относительные пути не могут менять диски. То есть в случае, если корневой каталог находится на диске D, вы не сможете использовать относительные пути для перехода к директории на диске E. Если вы сохраняете вашу модель с использованием относительных путей, преобразованы и сохранены будут только пути, относящиеся к одному и тому же диску.
Абсолютные и относительные пути в инструментах-скриптах
При использовании мастера Добавить скрипт опция сохранения относительных путей появится на первой панели. Вы также можете установить эту опцию, щелкнув правой кнопкой мыши инструмент-скрипт, выбрав Свойства, а затем закладку Общие. В нижней части диалогового окна выберите Сохранить относительные пути.
Текущая папка, используемая для относительных путей, это папка, в которой находится соответствующий набор инструментов. Опция относительного пути конвертирует и сохраняет пути к:
- Скрипту
- Наборам данных, которые используются в свойстве значения по умолчанию
- Файлам, на которые ссылаются метаданные инструмента и справка
- Файлам слоя (.lyr), используемым для свойства условных обозначений
- Компилированным файлам справки (.chm)
- Таблицам стилей
Преобразуются только пути, относящиеся к одному диску
Относительные пути не могут менять диски. То есть в случае, если корневой каталог находится на диске D, вы не сможете использовать относительные пути для перехода к директории на диске E. Если вы сохраняете ваш инструмент-скрипт с использованием относительных путей, преобразованы и сохранены будут только пути, относящиеся к одному и тому же диску.
Пути в скрипте не преобразуются
Нельзя использовать точку и двойную точку в скриптах. Например, следующий вариант не будет работать, потому что ..\redlands.gdb\streets — это относительный путь:
arcpy.AddField_management("..\redlands.gdb\streets", "ref_ID", "TEXT", field_length=10)
Какой смысл в использовании относительных путей вместо абсолютных?
Использование абсолютных путей характеризуется следующим:
- Вы можете перемещать документ или набор инструментов в любое местоположение на вашем компьютере и данные будут по-прежнему найдены, когда вы откроете документ или инструмент.
- На большинстве компьютеров расположение данных обычно не меняется. То есть, вы обычно не перемещаете ваши данные на собственном ПК. Как правило, используются абсолютные пути.
- Вы можете ссылаться на данные, которые находятся на других дисках.
С использованием относительных путей может понадобиться внесение следующих корректировок:
- При перемещении документа карты или набора инструментов необходимо перенести также и данные, на которые он ссылается.
- При передаче документов, наборов инструментов и данных другому пользователю должны использоваться относительные пути. Иначе возникнет необходимость, чтобы компьютер пользователя имел такую же структуру каталогов, как и ваш.
К примеру, возьмем представленную ниже структуру папок. В данном примере D:\Tools\Toolboxes\Toolbox1содержит инструмент-скрипт, который использует D:\Tools\Scripts\MyScript.py.
При использовании абсолютных путей в случае, если вы перемещаете набор инструментов D:\Tools\Toolboxes\Toolbox1 на другой диск, например, в E:\Final\Toolbox1, ArcGIS найдет D:\Tools\Scripts\MyScript. py и все будет прекрасно работать. Если же вы используете относительные пути, ArcGIS не найдет скрипт и инструмент работать не будет. Диалоговое окно инструмента появится, но инструмент выдаст ошибку при выполнении, поскольку он не сможет найти этот скрипт. Вам необходимо открыть свойства инструмента и ввести корректный путь к скрипту.
С другой стороны, если вы работаете с относительными путями, вы можете просто скопировать папку D:\Tools в любое место на любом компьютере и все будет работать. Это не сработает при использовании абсолютных путей, поскольку другой пользователь может скопировать папку в каталог F:\NewTools и путь D:\Tools\Scripts\MyScript.py на его компьютере найден, естественно, не будет.
Суммарная информация
- Относительные пути не могут менять диски.
- Абсолютные пути лучше применять, если данные не будут переноситься, как это обычно и происходит на дисках персональных компьютеров.
- Относительные пути полезно использовать в случае, когда вы передаете документы и данные другому пользователю.
- Относительные пути используют обозначения точки и двойной точки. Вы можете вводить относительные пути с такими обозначениями в Проводнике Windows и командной строке Windows.
- ArcGIS не позволяет вводить относительные пути с использованием обозначений точки и двойной точки. Чаще в документе и наборе инструментов хранятся относительные пути (после того как вы отметили опцию сохранения относительных путей).
- Относительные пути «отсчитываются» от текущей папки, являющейся местоположением сохраненного документа или набора инструментов.
Пути UNC
UNC расшифровывается как Universal (или Uniform, или Unified) Naming Convention – Конвенция об универсальных наименованиях, и является синтаксисом для доступа к директориям и файлам в компьютерных сетях. Синтаксис выглядит так:
\\<computer name>\<shared directory>\
В этой структуре пути может быть указано любое количество папок и название директории или имя файла, например:
\\pondermatic\public\studyarea. gdb \\omni\shared_stuff\wednesday\tools
Имя компьютера отделяется с помощью двойной обратной косой черты (\\).
В UNC имя компьютера также называется именем хоста.
Есть несколько правил для путей UNC:
- Пути UNC не могут содержать меток тома (таких как D).
- Невозможен переход в директорию выше уровнем, чем общая директория.
- Опция Сохранять относительные пути для документов и инструментов неприменима к путям UNC.
В ArcGIS вы можете использовать путь UNC при любом запросе пути. Это особенно удобно для общедоступных данных в локальной вычислительной сети (LAN). Данные могут храниться на одном компьютере, и любой пользователь, имеющий к нему доступ, может эти данные использовать, пока компьютер не будет выключен или отсоединен от сети.
В Windows возможно открывать доступ к папкам, чтобы другие пользователи в сети могли с ними работать. В ArcCatalog или Проводнике Windows щелкните правой кнопкой мыши Общий доступ и безопасность и следуйте дальнейшим указаниям открывающегося диалогового окна.
URL
URL расшифровывается как Uniform Resource Locator – Универсальный локатор ресурса и уникально описывает адрес любого документа в Интернете. Компонентами URL являются:
- Протокол, используемый для доступа к ресурсу, такой как HTTP (HyperText Transfer Protocol) или FTP (File Transfer Protocol)
- Хост (сервер), с которым происходит общение
- Путь к файлу на хосте
Пример:
http://www.esri.com/products.html
Веб-браузеры позволяют вам ввести в адресную строку www.esri.com, а https:// браузер добавит автоматически. Более правильным является явное указание протокола, например, https.
В ArcGIS вы можете использовать пути URL там, где это является допустимым. В общем, в пользовательском интерфейсе содержатся подсказки, где возможно или необходимо использование URL. При использовании URL в ArcGIS Explorer рекомендуется включать тип протокола как в https://www.esri.com вместо www.esri.com.
Путь к файлу подключения ArcSDE
Инструменты геообработки используют путь к файлу подключения (.
D:\Data\Final\Connection to ArcSDE.sde\EastValley\powerlines
Информация о подключения в файле .sde используется для создания подключения к многопользовательской базе геоданных, при этом база геоданных ищет запрашиваемые данные так же как и для файловой и персональной баз геоданных.
Связанные разделы
Странный мир путей файлов в Windows / Хабр
Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с/
, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.Когда я реализовал функцию автозавершения пути в Fileside 1.7, мне нужно было изучить этот вопрос внимательнее, чтобы ничего не упустить. В этой статье я расскажу о своих находках.
Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.
Вкратце
Форматы абсолютных путей
Форматы относительных путей
Запрещённые символы
Символы | Валидность |
---|---|
< > ” / \ |? * | Никогда не допускаются |
. | Не допускается в качестве последнего символа |
: | Не допускается, за исключением потоков данных |
Ограничения длины
Элемент | Максимальная длина |
---|---|
Путь | 32767 (или 260) символов |
Имя файла или папки | 255 символов |
Схемы путей Windows
В Windows существует три разных вида абсолютного пути и три разных типа относительного пути.Абсолютные пути
Абсолютные, или полные пути — это завершённые пути, сами по себе уникальным образом идентифицирующие местоположение в файловой системе.Пути к диску
Пути к диску — это старые добрые пути, которые мы знаем и любим, они состоят из буквы диска и последовательности папок.D:\Doughnut preferences\With jam in
UNC-пути
UNC расшифровывается как Universal Naming Convention, это описание файлов, начинающееся с\\
, часто используемое для ссылок на сетевые накопители. Первый сегмент после \\
— это хост, который может быть или сервером с именем, или IP-адресом:\\Work\Hard
\\192.168.1.15\Hard
UNC-пути также можно использовать для доступа к локальным дискам:
\\localhost\C$\Users\Andrew Fletcher
\\127.0.0.1\C$\Users\Alan Wilder
Или с использованием имени компьютера:
\\Pipeline\C$\Users\Martin Gore
Символ $
в C$
обозначает скрытую административную общую папку; он не заменяет двоеточие рядом с именем диска :
. Общие диски в стиле C$
— это просто удобные ярлыки, автоматически создаваемые Windows. Доступ к дискам через них возможен, только если вы вошли как администратор.
Стоит также заметить, что \\Pipeline
сам по себе не валидный путь к папке, он идентифицирует только сервер. Чтобы попасть в папку, нужно добавить имя общей папки.
Пути к устройству
Путь к устройству начинается с одного из следующих фрагментов:\\?\
\\.\
Синтаксис доступа к локальной папке выглядит как один из этих вариантов:
\\?\Z:\Animals\Cute
\\.\Z:\Animals\Cunning
Если вам нужно ещё больше загадочности, то можно также подставить эквивалентный Z:
идентификатор устройства:
\\?\Volume{59e01a55-88c5-411f-bf0b-92820bdb2548}\Animals\Cryptic
Здесь Volume{59e01a55-88c5-411e-bf0a-92820bdb2549}
— это идентификатор дискового тома, на котором находится Z:
в компьютере.
Также существует специальный синтаксис для описания UNC-путей как путей к устройству:
\\?\UNC\localhost\Z$\Animals\Curious
В путях к устройству часть, идущая после \\?\
или \\.\
— это имя, определённое во внутреннем пространстве имён Object Manager Windows. Те, кому любопытно исследовать это пространство имён, могут скачать инструмент WinObj и посмотреть.
Нормализованные и литеральные пути к устройству
Так в чём же разница между\\?\
и \\.\
?В обычном случае, когда вы передаёте путь операционной системе Windows, она очищает его, прежде чем использовать. Этот процесс называется нормализацией, подробнее о нём мы поговорим ниже.
Путь \\?\
пропускает этот этап очистки, а \\.\
не пропускает. Поэтому можно назвать пути \\?\
литеральными путями к устройству, а \\.\
— нормализованными путями к устройству.
Допустим, по какой-то непонятной причине, у вас есть файл с именем ..
(например, он мог быть создан на сетевом диске в другой системе). В обычном случае вы бы не смогли получить доступ к нему, потому что нормализация резолвит его в родительскую папку, но благодаря литеральному пути к устройству это можно сделать.
Относительные пути
Относительные пути — это неполные пути, которые для уникальной идентификации местоположения необходимо скомбинировать с другим путём.Пути, относительные к текущей папке
Эти пути используют в качестве начальной точки текущую папку, например,.\Torquay
относится к подпапке текущей папки, а ..\Wales
относится к подпапке родителя текущей папки.Папки, относительные к корню текущего диска
Если начать путь с одной\
, то путь интерпретируется как относительный к корню текущего диска. Поэтому если вы находитесь в любом месте диска E:
и введёте \Africa
, то окажетесь в E:\Africa
.Когда доступ к текущей папке выполняется через UNC-путь, то путь, относительный к текущему диску, интерпретируется относительно к общей корневой папке, допустим \\Earth\Asia
.
Пути, относительные к текущей папке диска
Эти более редко используемые пути указывают диск без обратной косой черты, напримерE:Kreuzberg
, и интерпретируются относительно к текущей папке этого накопителя. На самом деле это имеет смысл только в контексте оболочки командной строки, отслеживающей текущую рабочую папку для каждого диска.Это единственный тип путей, не поддерживаемый Fileside, потому что в нём нет понятия текущей папки каждого диска. Текущую папку имеют только панели.
Нормализация
Как говорилось ранее, все пути, за исключением литеральных путей к устройству, перед использованием проходят процесс нормализации. Этот процесс состоит из следующих этапов:- Замена косых черт (
/
) на обратные косые черты (\
) - Сворачивание повторяющихся разделителей в виде обратных косых черт в один
- Резолвинг относительных путей заменой всех
.
или..
- Отсечение завершающих пробелов и точек
Правила именования в Windows
Теперь рассмотрим отдельные элементы, из которых состоит путь. Существует множество ограничений имён, которые можно использовать для файлов и папок.Запрещённые символы
В имени нельзя использовать следующие символы:< > " / \ | ? *
Также исключаются любые непечатаемые символы со значением ASCII меньше 32.
Хитрое двоеточие
В большинстве случаев:
также запрещено.Однако существует экзотическое исключение в виде изменённых потоков данных NTFS, в которых двоеточие используется в качестве разделителя внутри имени. Малоизвестно, что в некоторых контекстах можно хранить внутри файла скрытый фрагмент данных, добавляя к его имени суффикс, которому предшествует двоеточие.
Опасная точка
Символ.
допустим внутри или в начале имени, но запрещён в конце.Начинающие и завершающие пробелы
Любопытно, что Windows допускает пробелы в начале, но не в конце имён. Так как имя с пробелами в начале и конце часто выглядит похожим на имя без пробелов, обычно это ужасная идея, и при переименовании или создании файлов Fileside автоматически удаляет их.Запрещённые имена
По историческим причинам нельзя использовать следующие имена:CON
, PRN
, AUX
, NUL
, COM0
, COM1
, COM2
, COM3
, COM4
, COM5
, COM6
, COM7
, COM8
, COM9
, LPT0
, LPT1
, LPT2
, LPT3
, LPT4
, LPT5
, LPT6
, LPT7
, LPT8
и LPT9
.
Это включает и имена с расширениями. Например, если вы назовёте файл COM1. txt
, то внутри он преобразуется в \\.\COM1\
и интерпретируется самой Windows как устройство. А это не то, что нам нужно.
Чувствительность к регистру
В большинстве случаев Windows не делает различий между символами в верхнем и нижнем регистре в путях.C:\Polish hamlet
, c:\polish Hamlet
, C:\Polish Hamlet
и C:\POliSh hAMlET
считаются абсолютно одинаковыми.
Однако с обновления Windows 10 за апрель 2018 года файловые системы NTFS имеют опцию включения чувствительности к регистру на уровне папок.
Ограничения длины
Мы ещё не закончили: ограничения есть и на длину.Пути
Традиционно длина пути в Windows не могла превышать 260 символов. Даже сегодня это справедливо для некоторых приложений, если только их разработчики не предприняли мер для обхода этого ограничения.Этот обход заключается в преобразовании каждого пути в литеральный путь к устройству перед передачей его Windows. Сделав это, мы сможем обойти ограничение в 260 символов и увеличить его до чуть более щедрого предела в 32767 символов.
Имена
Имена файлов и папок не могут быть длиннее 255 символов.Так много способов сказать одно и то же
Вооружённые этим знанием, мы понимаем, что можем создать почти неограниченное количество различных строк путей, и все они будут ссылаться на одну и ту же папку.C:\CHAMELEON
c:\chameleon
C:\/\\//\\\///Chameleon
C:\Windows\..\Users\..\Chameleon
\\localhost\C$\Chameleon
\\127.0.0.1\C$\Chameleon
\\?\C:\Chameleon
\\.\C:\Chameleon
\\.\UNC\localhost\C$\Chameleon
\\?\Volume{59e01a55-88c5-411e-bf0a-92820bdb2549}\Chameleon
\\.\GLOBALROOT\Device\HarddiskVolume4\Chameleon
- и так далее
Объяснение путей: абсолютный, относительный, UNC и URL — справка
- Пути и имена путей
- Абсолютные и относительные пути
- Абсолютные и относительные пути в ArcMap
- Абсолютные и относительные пути в инструментах модели
- Абсолютные и относительные пути в инструменты сценариев
- Зачем использовать относительные, а не абсолютные пути?
- Пути UNC
- URL-адреса
- Путь к файлу подключения ArcSDE
Каждый день вы имеете дело с путями для просмотра ваших данных и наборов инструментов. В этом разделе подробно рассматриваются пути, определение различных типов и то, как ArcGIS ими управляет.
Пути и имена путей
Путь
Путь представляет собой список имен каталогов, разделенных косой чертой, за которыми следует либо имя каталога, либо имя файла. Каталог — это то же самое, что и папка.
E:\Data\MyStuff (путь заканчивается именем каталога) E:\Data\MyStuff\roads.shp (путь заканчивается именем файла)
Путь
Иногда вы можете увидеть термин путь или имя пути. Путь, имя пути и имя пути являются синонимами.
Система и путь каталога
ArcGIS использует термин путь к каталогу или путь к ArcCatalog. Путь к каталогу — это путь, который распознает только ArcGIS. Например:
D:\Data\Final\Infrastructure.gdb\EastValley\powerlines
относится к классу пространственных объектов линий электропередач, найденному в наборе пространственных данных EastValley в инфраструктуре файловой базы геоданных. Это недопустимый системный путь для операционной системы Windows, поскольку Windows не распознает наборы данных объектов или классы объектов в файловой базе геоданных. Конечно, все в ArcGIS может работать с путями каталога.
Рабочая область и базовое имя
Пути каталога состоят из двух частей: рабочей области и базового имени, как показано ниже:
Местоположение
Местоположение данные» или «Введите местоположение ваших данных».
Прямая косая черта и обратная косая черта
По соглашению Windows в качестве разделителя пути используется обратная косая черта (\). В системах UNIX используется косая черта (/). Во всем ArcGIS не имеет значения, используете ли вы прямую или обратную косую черту в своем пути — ArcGIS всегда будет переводить прямую и обратную косую черту в соответствующее соглашение операционной системы.
Обратная косая черта в сценариях
Языки программирования, уходящие своими корнями в UNIX и язык программирования C, такие как Python, обрабатывают обратную косую черту (\) как escape-символ. Например, \n означает возврат каретки. Поскольку пути могут содержать обратную косую черту, вам необходимо предотвратить использование обратной косой черты в качестве escape-символа. Распространенным методом является экранирование обратной косой черты следующим образом:
thePath = "E:\\data\\telluride\\newdata.gdb\\slopes"
Другой способ — преобразовать пути в необработанные строки Python с помощью директивы r, как показано ниже. Это указывает Python игнорировать обратную косую черту.
thePath = r"E:\data\telluride\newdata.gdb\slopes"
Абсолютный и относительный пути
Абсолютный или полный путь
Абсолютный или полный путь начинается с буквы диска, за которой следует двоеточие, например D:.
Относительный путь
Относительный путь относится к расположению относительно текущего каталога. В относительных путях используются два специальных символа, точка (.) и двойная точка (..), которые преобразуются в текущий каталог и родительский каталог. Двойные точки используются для продвижения вверх по иерархии. Одна точка представляет сам текущий каталог.
В приведенном ниже примере структуры каталогов предположим, что вы использовали Проводник Windows для перехода к D:\Data\Shapefiles\Soils. После перехода в этот каталог относительный путь будет использовать D:\Data\Shapefiles\Soils в качестве текущего каталога (пока вы не перейдете в новый каталог, после чего новый каталог станет текущим каталогом). Текущий каталог иногда называют корневым каталогом.
Если вы хотите перейти к каталогу Landuse из текущего каталога (Soils), вы можете ввести следующее в поле адреса проводника Windows:
..\Ландусе
Проводник Windows перейдет в папку D:\Data\Shapefiles\Landuse. Еще несколько примеров использования D:\Data\Shapefiles\Landuse в качестве текущего каталога приведены ниже:
.. (D:\Data\Shapefiles) ..\.. (Д:\Данные) ..\..\Final (D:\Data\Final) . (D:\Data\Shapefiles\Landuse - текущая директория) . \..\Почвы (D:\Data\Final\Почвы) ..\..\.\Final\..\Shapefiles\.\Landuse (D:\Data\Shapefiles\Landuse)
Примечание:
Вы не можете вводить относительные пути (используя точку и двойную точку) ни в одном приложении ArcGIS.
Относительный путь не может охватывать диски. Например, если ваш текущий каталог находится на диске D, вы не можете использовать относительные пути для перехода к любому каталогу на диске E.
Абсолютные и относительные пути в ArcMap
При создании документа ArcMap (или ArcScene или ArcGlobe) вы можете указать, что пути будут храниться как относительные пути. Чтобы установить этот параметр, загляните в меню «Файл» и щелкните «Свойства документа карты». Здесь вы можете указать, следует ли хранить абсолютные или относительные пути.
Когда вы сохраняете документ с относительными путями, приложение преобразует пути в относительные пути (используя запись с точкой/двойной точкой) относительно места, где вы сохранили документ (текущий каталог). Например, если ваш документ хранится в папке
D:\Maps\Posters\Newmap.mxd.
и данные в одном из ваших слоев
D:\Data\Final\Infrastructure.gdb\Streets
в Newmap.mxd сохраняется следующее:
..\..\Data\Final\Infrastructure.gdb\Streets
Когда вы снова откроете Newmap.mxd, ArcMap преобразует сохраненный относительный путь из записи точка/двойная точка обратно в представление абсолютного пути, которое отображается как источник данных для слоя. Это преобразование всегда относится к местоположению документа карты (текущий каталог).
Преобразовываются только пути на одном и том же диске
Относительные пути не могут охватывать диски. То есть, если корневой каталог находится на диске D, вы не можете использовать относительные пути для перехода к каталогу на диске E. При сохранении документа карты с использованием относительных путей преобразуются и сохраняются только те пути, которые находятся на том же диске.
Подробнее о ссылках на данные в документе карты
Абсолютные и относительные пути в инструментах модели
Как и в данных в ArcMap, вы можете указать, что пути в ваших инструментах модели будут храниться как относительные пути.
Текущий каталог, используемый для относительных путей, — это каталог, в котором находится набор инструментов инструмента. Опция относительного пути преобразует и сохраняет пути к следующему:
- Данные в модели
- Графические изображения в модели
- Инструменты, используемые в вашей модели
- Файлы, на которые есть ссылки в метаданных инструментов и справке
- Таблицы стилей
- Файлы слоев (.lyr), используемые для символов
- Скомпилированные файлы справки (.chm)
Для хранения относительных путей , правильно -щелкните инструмент модели, щелкните «Свойства», затем щелкните вкладку «Общие». В нижней части диалогового окна установите флажок Сохранять относительные пути (вместо абсолютных путей), как показано ниже.
Преобразуются только пути на одном диске
Относительные пути не могут охватывать диски. То есть, если корневой каталог находится на диске D, вы не можете использовать относительные пути для перехода к каталогу на диске E. При сохранении модели с использованием относительных путей преобразуются и сохраняются только те пути, которые находятся на том же диске.
Абсолютные и относительные пути в инструментах-скриптах
При использовании мастера добавления скрипта на первой панели появится возможность сохранения относительных путей. Вы также можете установить этот параметр, щелкнув инструмент-скрипт правой кнопкой мыши, выбрав «Свойства», а затем щелкнув вкладку «Общие». В нижней части диалогового окна установите флажок Сохранять относительные пути (вместо абсолютных путей).
Текущий каталог, используемый для относительных путей, — это каталог, в котором находится набор инструментов инструмента. Опция относительного пути преобразует и сохраняет пути к следующему:
- Сценарий
- Наборы данных, используемые для свойства значения по умолчанию
- Файлы, на которые есть ссылки в метаданных инструмента и справке
- Файлы слоев (.lyr), используемые для свойства символов
- Скомпилированные файлы справки (. chm)
- Таблицы стилей
Преобразуются только пути на одном диске
Относительные пути не могут охватывать диски. То есть, если корневой каталог находится на диске D, вы не можете использовать относительные пути для перехода к каталогу на диске E. При сохранении инструмента-скрипта с использованием относительных путей преобразуются и сохраняются только те пути, которые находятся на том же диске.
Пути в скрипте не преобразуются
В скриптах нельзя использовать запись с точками и двойными точками. Например, следующее не будет работать:
arcpy.AddField_management("..\redlands.mdb\streets", "ref_ID", "long", "9", "#", "#", \ "код ссылки", "ОБНУЛЯЕТСЯ", "ОБЯЗАТЕЛЬНО", "#")
, потому что ..\redlands.mdb\streets является относительным путем.
Зачем использовать относительные, а не абсолютные пути?
При использовании абсолютных путей верно следующее:
- Вы можете переместить документ или панель инструментов в любое место на своем компьютере, и данные будут найдены при повторном открытии документа или инструмента.
- На большинстве персональных компьютеров расположение данных обычно постоянно. То есть вы обычно не перемещаете свои данные на своем персональном компьютере. В таких случаях предпочтительны абсолютные пути.
- Вы можете ссылаться на данные на других дисках.
При использовании относительных путей необходимы следующие корректировки:
- При перемещении документа карты или набора инструментов необходимо также перемещать связанные данные.
- При доставке документов, наборов инструментов и данных другому пользователю следует использовать относительные пути. В противном случае компьютер получателя должен иметь ту же структуру каталогов, что и ваш.
Например, рассмотрим структуру каталогов ниже. В этом примере D:\Tools\Toolboxes\Toolbox1 содержит инструмент-скрипт, который использует D:\Tools\Scripts\MyScript.py.
Используя абсолютные пути, если вы переместили набор инструментов из D:\Tools\Toolboxes\Toolbox1 на другой диск, например E:\Final\Toolbox1, ArcGIS найдет D:\Tools\Scripts\MyScript. py, и все работать нормально. Однако если вы используете относительные пути, ArcGIS не найдет скрипт и инструмент не будет работать. Откроется диалоговое окно инструмента, но при выполнении вы получите сообщение об ошибке «Сценарий, связанный с этим инструментом, не существует». Вам нужно будет открыть свойства инструмента и ввести правильный путь к скрипту.
С другой стороны, если вы используете относительные пути, вы можете просто скопировать папку D:\Tools в любое место на любом компьютере, и все будет работать. Это не сработает, если вы используете абсолютные пути, потому что получатель может скопировать папку в F:\NewTools, а путь D:\Tools\Scripts\MyScript.py не будет существовать на его компьютере.
Сводка
- Относительные пути не могут охватывать диски.
- Абсолютные пути лучше всего работают, когда данные не перемещаются, что характерно для дисков на персональном компьютере.
- Относительные пути лучше всего подходят для доставки документов и данных другому пользователю.
- В относительных путях используется запись с точками/двойными точками (. и ..). Вы можете ввести относительные пути с этим обозначением в проводнике Windows или в командной строке Windows.
- ArcGIS не позволяет вводить относительные пути с использованием записи точка/двойная точка. Вместо этого относительные пути сохраняются в документе или наборе инструментов (после того, как вы установите флажок «Сохранить относительные пути»).
- Относительные пути относятся к текущему каталогу, в котором находится сохраненный документ или набор инструментов.
UNC-пути
UNC означает универсальное (или единообразное, или унифицированное) соглашение об именах и представляет собой синтаксис для доступа к папкам и файлам в сети компьютеров. Ниже показан синтаксис:
\\<имя компьютера>\<общий каталог>\
, за которым следует любое количество каталогов и завершается именем каталога или файла.
Например:
\\pondermatic\public\studyarea. gdb \\всемогущий\shared_stuff\среда\инструменты
Перед именем компьютера всегда стоит двойная обратная косая черта (\\).
В UNC имя компьютера также называется именем хоста.
Вот несколько правил для путей UNC:
- Пути UNC не могут содержать букву диска (например, D).
- Вы не можете перейти к каталогам над общим каталогом.
- Параметр Сохранять относительные пути для документов и инструментов не влияет на пути UNC.
В ArcGIS вы можете использовать путь UNC везде, где запрашивается путь. Это особенно удобно для обмена данными в локальной сети (LAN). Данные могут храниться на одном компьютере, и каждый, у кого есть доступ к компьютеру, может использовать данные, если компьютер не выключен или не удален из сети.
В Windows вы можете открыть общий доступ к папке, чтобы другие пользователи в вашей локальной сети могли получить к ней доступ. В ArcCatalog или Проводнике Windows щелкните папку правой кнопкой мыши, выберите Общий доступ и безопасность, затем следуйте инструкциям в открывшемся диалоговом окне.
URL-адреса
URL-адрес означает унифицированный указатель ресурсов и однозначно определяет адрес любого документа в Интернете. Компоненты URL следующие:
- Протокол, используемый для доступа к ресурсу, такой как HTTP (протокол передачи гипертекста) или FTP (протокол передачи файлов)
- Хост (сервер) для связи
- Путь к файлу на хосте
Например:
http://www.esri.com/products.html
Windows Internet Explorer позволяет ввести www.esri.com в адресную строку Internet Explorer, и он автоматически добавит http://. Однако правильнее указывать протокол, например http. Другие протоколы включают, среди прочего, HTTPS (протокол безопасной передачи гипертекста), FTP, mailto (адрес электронной почты) и новости (группы новостей Usenet).
В ArcGIS вы можете использовать URL-адреса только там, где это разрешено. Как правило, пользовательский интерфейс сообщит вам, разрешен или необходим URL-адрес. При использовании URL-адресов в ArcGIS рекомендуется включать протокол, например
http://www. esri.com.
вместо
www.esri.com
Путь к файлу подключения ArcSDE
Инструменты геообработки используют путь к файлу подключения ArcSDE (.sde) для поиска данных, хранящихся в базе данных ArcSDE.
D:\Data\Final\Connection to ArcSDE.sde\EastValley\powerlines
Информация о подключении в файле .sde используется для создания подключения к ArcSDE, и база геоданных ищет запрашиваемые данные так же, как и в файловых или персональных базах геоданных (см. выше).
Связанные темы
В чем разница между абсолютными и относительными путями?
Опубликовано: 29 сентября 2022 г. | | на Сет Кенлон (редакционная группа, Red Hat)
Изображение
Фото StockSnap на Pixabay
В компьютерном программировании, веб-разработке и системном администрировании Linux путь к каталогу или файлу является важным способом определения местоположения данных в системе.
Программисты часто используют пути, чтобы указать на важную библиотеку кода, в то время как веб-разработчики иногда указывают на графику или видео на сервере, на котором размещается сайт, который они создают, а системные администраторы Linux могут указывать на важный файл конфигурации.
Путь похож на карту сокровищ, описывающую структуру системы, чтобы пользователь или компьютер могли повторить шаги для извлечения жизненно важных данных.
[ Держите под рукой наиболее часто используемые команды с помощью шпаргалки по командам Linux. ]
Как прочитать путь
Путь описывает местоположение. Например, /home/tux/example.txt
говорит вам начать с каталога /home
на вашем жестком диске, а затем нажать на tux
, где вы найдете текстовый файл с именем example.txt
.
Если это поможет, вы можете сказать «который содержит» между каждым элементом пути, когда вы его читаете, потому что каждый элемент пути является чем-то «внутри» чего-то другого. В этом примере утверждение «начать в доме, который содержит смокинг, который содержит example.txt» является точным описанием того, где находится example.txt
.
Абсолютный путь
Абсолютный путь не делает предположений о вашем текущем местоположении по отношению к расположению файла или каталога, который он описывает. Абсолютный путь всегда начинается с абсолютного начала вашего жесткого диска и описывает каждый шаг, который вы должны выполнить через файловую систему, чтобы оказаться в целевом месте.
Например, предположим, что вы пишете записку своему коллеге по работе, в которой говорится: «Нажимайте на кнопку каждые 108 минут». Без сообщения коллеге, где находится кнопка, эти инструкции бесполезны. Поэтому вы меняете инструкцию на: «Нажимайте кнопку /usr/share/widgets/ каждые 108 минут».
Теперь ваш коллега точно знает, где находится кнопка, и путь к кнопке одинаков, независимо от того, следуете ли вы или ваш коллега по этому пути. В вашем домашнем каталоге кнопка находится в /usr/share/widgets/button
, а из домашнего каталога вашего коллеги кнопка также находится в /usr/share/widgets/button
.
Причина в том, что путь один и тот же независимо от того, начинаются ли предоставляемые вами инструкции с самого дальнего региона файловой системы. Вы не можете вернуться дальше, чем /
, поэтому, когда вы там, вы можете найти usr
, который содержит акций
, который содержит виджетов
, который содержит кнопку.
[ Хотите проверить свои навыки системного администратора? Пройдите оценку навыков сегодня. ]
Вы всегда можете получить абсолютный путь к файлу с помощью команды realpath
:
$ cd /usr/share/aclocal $ реальный путь pkg.m4 /usr/доля/aclocal/pkg.m4` $ компакт-диск ~ $ реальный путь пример.txt /home/tux/example.txt
Относительный путь
Абсолютные пути полезны, но не всегда эффективны. Если вы знаете, где находится каталог виджетов
, который содержит кнопка
, находится. тогда вам не обязательно возвращаться к /
, а затем usr
, а затем совместно использовать
и так далее. Подумайте об этом так: когда вы останавливаетесь в закусочной по пути на работу, вам не нужно возвращаться домой, чтобы продолжить свой путь в офис. Вы просто выходите из закусочной и продолжаете свой путь, потому что знаете, где находится ваш офис относительно вашего текущего местоположения.
Относительные пути используют тот же принцип. Предположим, вы в /var/log/foo
и вы хотите просмотреть файл в /var/log/bar
. Нет причин «путешествовать» обратно к /var
. Вместо этого используйте относительный путь, чтобы смотреть за пределы foo
и в bar
.
$ sudo cat ../bar/file.txt
Две точки ( ..
) обозначают перемещение в родительский каталог, поэтому . ./bar/file.txt
означает перемещение на один каталог вверх (в /var/log
), а затем спуститься в /var/log/bar
, который содержит file.txt
.
Вы можете заметить, что использование ..
не очень описательно. Это и преимущество, и недостаток относительного пути. Это преимущество, потому что его можно набирать быстрее и оно гибкое. Утверждению ../bar/file.txt
все равно, что предшествует bar
. Он знает только, что каталог bar
содержит файл с именем file.txt
. Это делает одинаково верным, сохраняет ли пользователь foo
и bar
каталоги в /var/log
или в /opt
или в /home/tux/.var/log
или в любом другом месте.
Относительные пути позволяют приложениям и сценариям быть в значительной степени автономными. Пока непосредственная среда предсказуема, вы всегда можете ссылаться на файлы из известного местоположения. Я часто использую этот трюк в репозиториях Git. Я знаю, что независимо от того, где находится папка, каталог верхнего уровня всегда находится в известном или доступном для обнаружения состоянии. Использование таких команд, как git rev-parse --show-toplevel
позволяет мне использовать символические ссылки и сценарии, которые запускаются в моем репозитории, а не в начале всего жесткого диска.
[ Получите руководство по установке приложений в Linux. ]
Одна точка
Сначала это может показаться странным, но относительные пути также позволяют сделать отсутствие движения по пути. Возможно, вы видели инструкции, в которых говорится, что нужно выполнить такой скрипт:
$ sh ./example.sh
Одна точка указывает ваше текущее местоположение .
На самом деле для этого есть веская причина. Знаете вы это или нет, но у вашего компьютера есть несколько путей по умолчанию, которые, как предполагается, вы используете каждый раз, когда запускаете команду. Это местоположение по умолчанию, обычно просто называемое «ваш путь» или «ваш $PATH», — это место, где ваш компьютер ищет команды, которые вы хотите запустить.
Ваш компьютер изначально не знает, что ls
или git
являются специальными ключевыми словами. Он выполняет эти приложения, потому что при поиске /usr/bin
, он находит там файлы с именами ls
и git
. Представьте, что произойдет, если я назову файл ls
, а затем настрою свой компьютер на запуск первого найденного файла с таким именем. Каждый раз, когда я нахожусь в каталоге, содержащем произвольный файл с именем ls
, мой компьютер пытается его запустить. И вместо того, чтобы получать список всех моих файлов, я получал все, что ls
говорил компьютеру.
Это опасно, поэтому Linux по умолчанию не ищет команды в произвольных местах. Вместо этого вы должны указать местоположение файла, который хотите запустить как приложение, даже если этот файл находится буквально рядом с вами.
Другое обозначение пути
Я использую символ косой черты ( /
), потому что Linux, Интернет и многие другие используют косую черту в качестве разделителя путей. Хотя косая черта, вероятно, является наиболее распространенным разделителем, он не единственный. Системы Windows исторически использовали обратную косую черту ( \
) в качестве разделителя пути, хотя современные системы Windows понимают оба одинаково.
Многие языки программирования используют выражения пути для описания наследования библиотек кода. Например, вы можете увидеть скрипт Python со ссылкой на time.sleep()
или QtWidgets.QVBoxLayout()
. В этих случаях разделители точек указывают тип пути. Модуль time
содержит функцию sleep , а модуль QtWidgets
содержит функцию QVBoxLayout
. Вы можете по-разному взаимодействовать с этими путями, но они передают одну и ту же концепцию. Они отображают местоположение ресурса и гарантируют, что программист или программа смогут надежно определить местонахождение этого ресурса.
На самом деле, когда приложение не запускается на компьютере, это часто происходит из-за отсутствия библиотеки. Это означает, что компьютер пошел по пути и обнаружил, что библиотеки в указанном месте нет. Исправление часто заключается в установке отсутствующей зависимости, которая помещает требуемую библиотеку в ожидаемый путь.
Использование путей
Путь — это карта, и, как и карта сокровищ, путь к файлу может быть предназначен для вас (человека, который зарыл сокровище в первую очередь) или для кого-то другого (того, кому вы хотите поделиться сокровищем с). В отличие от карты сокровищ, указывающей на один зарытый клад, путь к файлу может указывать на данные, которые существуют на компьютерах многих людей. Помните о том, как вы описываете расположение важного ресурса, и по возможности используйте такие установщики, как Autotools или CMake, чтобы ваши сценарии и приложения могли адаптироваться к различным параметрам установки.
Если вы все еще сталкиваетесь с путями, помните, что практика ведет к совершенству. Чем больше вы используете терминал для навигации по вашей системе, тем более быстрые пути к файловой системе кажутся естественными.
[ Если вы новичок в Linux, прочтите руководство по терминалу Linux для начинающих. ]
Ознакомьтесь со статьями по теме Включить системного администратора
Изображение
4 мягких навыка для успешных системных администраторов
Чтобы продвинуться по карьерной лестнице системного администратора, сосредоточьтесь на хорошем общении, решении проблем и обслуживании кабелей и кода.
Изображение
Попробуйте «лаборатории как услугу», чтобы изучить Linux в облаке
Семинары Red Hat Enterprise Linux Skills предлагают способ узнать больше о Linux без создания и обслуживания собственной лабораторной среды.
Изображение
Как установить РХЕЛ 9
Red Hat Enterprise Linux 9 предлагает важные новые функции для гибридных облачных организаций. Вот как его установить, чтобы вы могли начать тестирование.