Как узнать путь к файлу
Перейти к содержимому

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

  • автор:

Как получить полный путь к файлу или программе Windows? Python

Как получить полный путь к файлу или программе в Windows, для его/ее дальнейшего открытия с помощью subprocess?

Отслеживать
задан 13 янв 2020 в 20:23
265 5 5 серебряных знаков 12 12 бронзовых знаков
можете уточнить суть вопроса и привести примеры? что вам известно о файле / программе ?
13 янв 2020 в 20:24

@MaxU, у меня есть приложение, возьмём условный Google Chrome. На вход функции нужно дать имя программы, а на выходе получить полный путь к ней. Возможно ли это сделать?

13 янв 2020 в 20:31
путь к этой программе прописан в переменной окружения PATH ?
13 янв 2020 в 20:32
@MaxU, нет. Нужно добавить?
13 янв 2020 в 20:35

я не просто так попросил уточнить вопрос. Если это программа которая открывает определенный тип файлов по умолчанию в Windows, то данную информацию можно найти в реестре Windows. Если к данной программе прописан путь в переменной PATH — тоже можно найти. В противном случае придется искать данный файл во всех папках всех доступных дисков — это ОЧЕНЬ медленно

Получение абсолютного пути к файлу в Python

Существует множество ситуаций, когда может потребоваться определить абсолютный путь к файлу в Python. Например, у вас есть относительный путь к файлу, такой как «mydir/myfile.txt» , и вы хотите получить полный путь к этому файлу в вашей файловой системе.

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

Вот пример использования этой функции:

import os relative_path = "mydir/myfile.txt" absolute_path = os.path.abspath(relative_path) print(absolute_path)

В этом примере os.path.abspath() принимает относительный путь к файлу и возвращает его абсолютный путь. В результате выполнения этого кода на экран будет выведен абсолютный путь к файлу myfile.txt в директории mydir .

Обратите внимание, результат выполнения этого кода будет зависеть от операционной системы и текущей рабочей директории. Например, на Windows результат может выглядеть так: «C:/example/cwd/mydir/myfile.txt» .

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

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

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

Абсолютный путь к файлу

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

В Windows всё начинается с диска — это может быть C:, D: или диск с любой другой буквой. Если на диске C: сделать папку Thecode, внутри неё — папку Media, а в Media положить файл «статья.txt», то абсолютный путь к этому файлу будет такой:

Полный путь к файлу в Windows формируется так: Диск → все вложенные папки → имя файла. Обратите внимание — названия дисков, папок и файлов отделяются друг от друга обратной косой чертой.

❌ C\Thecode\Media\статья.txt ← пропущено двоеточие после буквы диска.

❌ C: Thecode Media статья.txt ← нет разделителей между названиями папок и файлов.

❌ C:\Thecode\Media ← это путь к папке, но имя файла не указано.

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

Кстати, в MacOS, Linux и любой UNIX-подобной файловой системе все диски — это тоже папки. Например, когда мы делали скрипт для бэкапа, то флешка с названием WIN10_64 находилась по такому адресу: /Volumes/WIN10_64. А всё потому, что все новые диски по умолчанию подключаются как папки внутри папки /Volumes.

Ещё одно отличие MacOS и Linux в том, что вместо обратной косой черты используется просто косая черта, у которой наклон в другую сторону: /. Всё остальное работает по тому же принципу: в абсолютном пути мы собираем все папки, которые нужно пройти, начиная с корня.

Например, если у нас есть в документах папка Notes, внутри которой лежит markdown-файл с задачами на день tasks.md, то полный путь к нему будет в MacOS выглядеть так:

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

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

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

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

Относительный путь — это путь к файлу относительно текущего каталога. Текущий каталог — это тот, в котором запускается скрипт, программа или открывается страница в браузере.

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

/Users/mike/Documents/Notes/index.html
/Users/mike/Documents/Notes/style.css
/Users/mike/Documents/Notes/script.js

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

index.html
style.css
script.js

Когда браузер встретит такой путь, он возьмёт путь к каталогу, где лежит страница, и в нём будет искать эти файлы. А если нам понадобится файл data.json из папки Documents, которая лежит уровнем выше, то мы можем обратиться к нему так:

Первая точка означает текущий каталог, вторая — на уровень выше, а косая черта — что нам нужно зайти в тот каталог и взять оттуда файл data.json.

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

Когда что использовать

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

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

Получите ИТ-профессию

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

Как узнать абсолютный путь,?

Для того, чтобы узнать полный путь от корня сервера до вашей папки необходимо.
1. Создать файл php, например home.php
2. Занести в него следущие строки:

3. Сохранить, загрузить на сервер и запустить в папке, путь до которой Вы хоитет узнать, например, mydir.
4. на экране появится требуемый путь вида /home/mycoolsite/public_html/mydir
5. Копируем куда надо и учитываем необходимость последнего слэша (/)

На сайте с 28.06.2008
27 марта 2009, 14:35
Nicca:
Подскажите как узнать абсолютный путь к файлу от корневой директории сервера?
— спросить у хостера? 🙂
размещение сайтов (http://www.brim.ru)
27 марта 2009, 16:31
realpath(относительный путь)
27 марта 2009, 16:36
__FILE__ ну или dirname(__FILE__); в зависимости от того, что вам нужно.
На сайте с 04.03.2009
27 марта 2009, 16:37
Если панель ISPmanager,то там показывает в разделе фтп пользователи путь к корневой папке

Консультации по SEO от 25$/час. Обращаться в ICQ За инвайтами на киноперец в личку SEOinst.ru — все необходимое для заработка в интернет (http://linkum.ru/to/2041/)

На сайте с 01.06.2008
27 марта 2009, 16:47
Phessiv:
Занести в него следущие строки:
можно любые, даже если ошибку выдаст, путь всё равно покажет 😉
27 марта 2009, 16:54
zuziken:
можно любые, даже если ошибку выдаст, путь всё равно покажет 😉
не покажет, если ошибки отключены
На сайте с 11.05.2006
31 марта 2009, 15:10
Есть хорошая штука — SSI можно создать файл test.shtml включить него строки:

DOCUMENT_ROOT:

GATEWAY_INTERFACE:

HTTP_ACCEPT:

HTTP_CONNECTION:

HTTP_HOST:

HTTP_REFERER:

HTTP_USER_AGENT:

QUERY_STRING:

REMOTE_ADDR:

REQUEST_METHOD:

REQUEST_URI:

SERVER_ADDR:

SERVER_ADMIN:

SERVER_NAME:

SERVER_PORT:

SERVER_PROTOCOL:

SERVER_SOFTWARE:

и первая же строка расскажет всю правду! остальные строки — расскажут не столь интересную информацию. а то. PHP и пр. — это слишком сложно и не всегда работает!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *