#python
#python
Вопрос:
На платформе Windows довольно просто отделить букву диска от пути к файлу с помощью модуля npath:
import ntpath
filepath='c:\my_drivepath\somefolder\blabla\filename.txt'
result = ntpath.splitdrive(filepath)
print result
выводит:
('c:', '\my_drivepath\somefolder\blabla\filename.txt') <type 'tuple'>
Но использовать его с Mac filepath:
filepath='/Volumes/drivename/Folder1/Folder2/Folder3/Folder4/Filename.ext'
результаты для:
('', '/Volumes/drivename/Folder1/Folder2/Folder3/Folder4/Filename.ext') <type 'tuple'>
Интересно, есть ли какой-либо доступный модуль / метод / команда, который разделяет имя диска из пути к файлу Mac… ищем вывод, подобный этому:
('/Volumes/drivename', '/Folder1/Folder2/Folder3/Folder4/Filename.ext')
Ответ №1:
Mac — это ОС на базе Unix, и ее концепция «диска» отличается от Windows. В Unix все каталоги начинаются с /
, и «диски» могут быть смонтированы в любом каталоге ниже /
.
В вашем случае лучше использовать split
для выполнения своей работы:
>>> d = '/Volumes/drivename/Folder1/Folder2/Folder3/Folder4/Filename.ext'
>>> d.split('/',3)
['', 'Volumes', 'drivename', 'Folder1/Folder2/Folder3/Folder4/Filename.ext']`
Комментарии:
1. Чистый подход. Мне это нравится! Спасибо!
Ответ №2:
В системах на базе Unix диск может быть сопоставлен с любым каталогом. Так что это может быть на
/Volumes/имя диска
или
/Users/dir1 /dir2 /dir3 /dir4′
Возможно, вы захотите использовать утилиту командной строки, такую как df
, чтобы найти, какие диски существуют и где они сопоставлены. Тогда вы узнаете, что такое «путь к диску».
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 236003080 139929200 84062516 63% /
udev devtmpfs 10240 0 10240 0% /dev
tmpfs tmpfs 805524 968 804556 1% /run
tmpfs tmpfs 5120 0 5120 0% /run/lock
tmpfs tmpfs 3642440 21384 3621056 1% /run/shm
none tmpfs 4 0 4 0% /sys/fs/cgroup
Здесь вы можете видеть, что мой основной диск подключен к /
. Если бы у меня был USB-накопитель, вы бы увидели что-то вроде /media/usb0