Подтвердить что ты не робот

Как использовать '~' (тильда) в контексте путей?

Я noob разработки веб-приложений. У меня есть функция, которая открывает файл и читает его. К сожалению, структуры каталогов между тестовым и рабочим серверами различаются. Мне сказали "использовать путь относительно ~". Однако я не смог найти никаких ресурсов на "~"!

Как использовать символ тильды в контексте путей?

ОБНОВЛЕНИЕ: Это в Python. Я исправил проблему, используя os.path.expanduser('~/path/in/home/area').

4b9b3361

Ответ 1

это ваш $HOME var в UNIX, который обычно равен /home/username.

"Ваш дом" означает дом пользователя, выполняющего команду типа cd ~/MyDocuments/, cd /home/user_executing_cd_commnd/MyDocuments

Ответ 2

Если вы не пишете оболочку script или используете какой-либо другой язык, который знает, чтобы подставить значение $HOME для ~, тильды в пути к файлам не имеют специального значения и будут рассматриваться как любые другие не- специальный символ.

Если вы пишете оболочку script, оболочки не интерпретируют тильды, если они не встречаются в качестве первого символа в аргументе. Другими словами, ~/file станет /path/to/users/home/directory/file, но ./~/file будет интерпретироваться буквально (т.е. "Файл с именем file в подкаталоге ., называемый ~" ).

Используется в URL-адресах, интерпретация тильды как стенограммы для домашнего каталога пользователя (например, http://www.foo.org/~bob) - это соглашение, заимствованное из Unix. Реализация полностью зависит от сервера, поэтому вам нужно будет проверить документацию для своего веб-сервера, чтобы узнать, имеет ли она какое-то особое значение.

Ответ 3

Если вы используете pathlib для имен файлов, вы можете использовать их как в Windows, так и в Linux (я пришел сюда для ответа Windows):

python from pathlib import Path p = Path('~').expanduser() print(p)