Добавить в корзинуПозвонить
Найти в Дзене
programmer's notes (python and more)

Стандартные библиотеки в Python. Библиотека pathlib. Знакомство. Приложение 1 к видео 13

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. А это подборки моих материалов на канале Приложение 1 к уроку О библиотеке pathlib В видеоуроке 13 я не много рассказал о библиотеке pathlib. Сегодня в приложении я сделаю тоже, но в текстовом варианте. В ещё одном приложении я сделаю не большой справочник по pathlib. Библиотека занятная, я вам скажу. Основным модулем в ней является path. Так что подключаются к ней обычно from pathlib import path Возможности библиотеки можно разделить на следующие разделы: В следующем приложении мы подробнее остановимся на этих разделах. Сегодня же просто несколько примеров. В данном примере продемонстрированы разные возможности библиотеки pathlib.
#!/usr/bin/python3
from pathlib import Path
print(Path.cwd()) #текущий каталог
print(Path.home()) #домашний каталог
pt = Path.home() / 'mydir' / 'ert'
print(pt)
file = Path.cwd() / 'text'
print(file.stat()

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

А это подборки моих материалов на канале

Индексная статья по разделу Задачи по программированию
programmer's notes18 августа 2023
Индексная статья по курсу Управление файлами на языке Python
programmer's notes27 июля 2023

Приложение 1 к уроку

О библиотеке pathlib

В видеоуроке 13 я не много рассказал о библиотеке pathlib. Сегодня в приложении я сделаю тоже, но в текстовом варианте. В ещё одном приложении я сделаю не большой справочник по pathlib.

Библиотека занятная, я вам скажу. Основным модулем в ней является path. Так что подключаются к ней обычно

from pathlib import path

Возможности библиотеки можно разделить на следующие разделы:

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

В следующем приложении мы подробнее остановимся на этих разделах. Сегодня же просто несколько примеров.

В данном примере продемонстрированы разные возможности библиотеки pathlib.
#!/usr/bin/python3
from pathlib import Path
print(Path.cwd()) #текущий каталог
print(Path.home()) #домашний каталог
pt = Path.home() / 'mydir' / 'ert'
print(pt)
file = Path.cwd() / 'text'
print(file.stat().st_size)
print(file.owner()) #собственник файла или каталога
print(file.group()) #группа файла или каталога
pdir = Path('/home/pirogov/Yandex.Disk/about.odt')
print(pdir. expanduser()) #разворачивания пути
# в данном примере тривиальное
print(pdir.stat().st_size) #размер файла


Результат выполнения программы

/home/pirogov/Yandex.Disk/projects/programming/python2/pathlib
/home/pirogov
/home/pirogov/mydir/ert
117
pirogov
pirogov
/home/pirogov/Yandex.Disk/about.odt
68781


Особенно хочу обратить внимание на вот такой способ формирования пути к файлу или каталогу.

pt = Path.home() / 'mydir' / 'ert'

pt это объект, определяющий путь к файлу или каталогу. Не плохо, да.

Следующий пример. Получить список файлов в каталоге. При чём можно использовать маску. '*' - это все файлы или каталоги.

#!/usr/bin/python3
from pathlib import Path
pt = input()
pt = Path(pt)
fl = sorted(map(str, pt.glob('*')))
print(*fl, sep='\n')
print(len(fl))

Например для строки '/' получаем содержимое корневого каталога

/bin
/boot
/dev
/etc
/home
/lib
/lib64
/libx32
/lost+found
/media
/mnt
/opt
/proc
/root
/run
/sbin
/selinux
/srv
/sys
/tmp
/usr
/var
22

Но библиотека позволяет также осуществлять рекурсивный поиск

#!/usr/bin/python3
from pathlib import Path
pt = input()
pt = Path(pt)
fl = sorted(map(str, pt.glob('**/*')))
print(*fl, sep='\n')
print(len(fl))

Программа аналогичная предыдущей, но ищет рекурсивно. Мощное средство.

Ну и наконец ещё несколько примеров возможностей библиотеки.

#!/usr/bin/python3
from pathlib import Path
# информация о файле-каталоге
p1 = Path('./text')
print(p1.exists()) # существует ли файл
p2 = Path('./temp')
print(p2.is_dir()) # это каталог
p3 = Path('./Downloads')
print(p3.is_symlink()) # это символьная ссылка
# создать каталог
newd = Path('./new')
newd.mkdir(0o700)

Результат выполнения программы

True
True
True

Кроме того в текущем каталоге будет создан подкаталог.

Пока всё, в следующем приложении продолжим говорить о библиотеке pathlib.

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Что мне ваши библиотеки. Лучше я напишу свою собственную
Что мне ваши библиотеки. Лучше я напишу свою собственную