Рубрики
Без рубрики

Python Pathlib Модуль – 14 практических примеров

Модуль Python Pathlib предоставляет объектно-ориентированный подход к работе с файлами и каталогами. Модуль PathLib имеет классы для работы с Unix, а также

Автор оригинала: Pankaj Kumar.

Модуль Python Pathlib предоставляет объектно-ориентированный подход к работе с файлами и каталогами. Модуль PathLib имеет классы для работы с Unix, а также в средах Windows. Лучшая часть заключается в том, что нам не нужно беспокоиться о базовой операционной системе, модуль Pathlib заботится об использовании соответствующего класса на основе операционной системы.

Python Pathlib путь класса

Путь – самый важный класс в модуле Pathlib. Это точка входа всех функций, предоставленных модулем PATHLIB. Это заботится о создании реализации конкретного пути осуществления на основе операционной системы и сделать код независимой платформой.

Модуль Python Pathlib

Давайте посмотрим на несколько примеров использования модуля PathLib.

1. Список подкаталогов и файлов внутри каталога

Мы можем использовать функцию PATH ITERDIR (), чтобы повторить файлы в каталоге. Затем мы можем использовать функцию IS_DIR () для дифференцировки файла и каталога.

from pathlib import Path

# list subdirectories and files inside a directory
path = Path("/Users/pankaj/temp")

subdirs = []
files = []

for x in path.iterdir():  # iterate over the files in the path
    if x.is_dir():  # condition to check if the file is a directory
        subdirs.append(x)
    else:
        files.append(x)

print(subdirs)
print(files)

Выход:

[PosixPath('/Users/pankaj/temp/spring-webflow-samples'), PosixPath('/Users/pankaj/temp/image-optim'), PosixPath('/Users/pankaj/temp/jersey2-example')]

[PosixPath('/Users/pankaj/temp/test123.py'), PosixPath('/Users/pankaj/temp/.txt'), PosixPath('/Users/pankaj/temp/xyz.txt'), PosixPath('/Users/pankaj/temp/.DS_Store'), PosixPath('/Users/pankaj/temp/db.json'), PosixPath('/Users/pankaj/temp/Test.java'), PosixPath('/Users/pankaj/temp/routes.json'), PosixPath('/Users/pankaj/temp/itertools.py')]

Если вы запускаете одну и ту же программу в Windows, вы получите экземпляры WindowsPath.

2. Перечисление определенного типа файлов

Мы можем использовать функцию Path Chall (), чтобы повторить перечень файлов, соответствующих данному шаблону. Давайте использовать эту функцию, чтобы распечатать все сценарии Python внутри каталога.

from pathlib import Path

path = Path("/Users/pankaj/temp")

python_files = path.glob('**/*.py')

for pf in python_files:
    print(pf)

Выход:

Python PathLib Список файлов

3. Разрешение символических ссылок на канонический путь

Мы можем использовать функцию разрешения () для преобразования символических ссылок на их канонический путь.

py2_path = Path("/usr/bin/python2.7")

print(py2_path)
print(py2_path.resolve())

Выход:

/usr/bin/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

4. Проверьте, существует ли файл или каталог

Путь существует () функция возвращает true, если путь существует, в противном случае он возвращает false.

path = Path("/Users/pankaj/temp")
print(path.exists())  # True

path = Path("/Users/pankaj/temp/random1234")
print(path.exists())  # False

5. Открытие и чтение содержимого файла

Мы можем использовать Path Open () функцию, чтобы открыть файл. Он возвращает файловый объект, такой как встроенный открытый () функция.

file_path = Path("/Users/pankaj/temp/test.py")

if file_path.exists() and file_path.is_file():
    with file_path.open() as f:
        print(f.readlines())

Выход:

['import os\n', '\n', 'print("Hello World")\n']

6. Получение информации файла

Функция STAT () Path Object () делает системный вызов STAT () и вернуть результаты. Выход такой же, как функция модуля OS STAT ().

file_path = Path("/Users/pankaj/temp/test.py")

print(file_path.stat())

Выход:

os.stat_result(st_mode=33188, st_ino=8623963104, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=32, st_atime=1566476310, st_mtime=1566476242, st_ctime=1566476242)

7. Получение имени файла или каталога

Мы можем использовать свойство «name», чтобы получить имя файла из объекта пути.

print(Path("/Users/pankaj/temp/test.py").name)
print(Path("/Users/pankaj/temp/").name)
print("Path without argument Name :", Path().name)

Выход:

test.py
temp
Path without argument Name : 

8. Создание и удаление каталога

Мы можем использовать функцию MKDIR () для создания каталога. Мы можем использовать RMDIR (), чтобы удалить пустой каталог. Если есть файлы, то мы должны сначала удалить их, а затем удалить каталог.

directory = Path("/Users/pankaj/temp/temp_dir")
print(directory.exists())  # False
directory.mkdir()
print(directory.exists())  # True
directory.rmdir()
print(directory.exists())  # False

9. Изменить режим файла

file = Path("/Users/pankaj/temp/test.py")
file.chmod(0o777)

Функция CHMOD () ведет себя так же, как функция OS.chmod () для изменения разрешений файла.

10. Получение файловой группы и имя владельца

file = Path("/Users/pankaj/temp/test.py")
print(file.group())  # staff
print(file.owner())  # pankaj

11. Развернуть ~ к каноническому пути

path = Path("~/temp")
print(path)  # ~/temp
path = path.expanduser()
print(path)  # /Users/pankaj/temp

12. CWD и домашний путь

print(Path.cwd())
print(Path.home())

Выход:

/Users/pankaj/Documents/PycharmProjects/PythonTutorials/hello-world
/Users/pankaj

13. Присоединение к двум путям

path = Path.home()
path = path.joinpath(Path("temp"))
print(path)  # /Users/pankaj/temp

14. Создание пустого файла

Также как команда Unix Touch, путь имеет функцию Touch () для создания пустого файла. Вы должны иметь разрешения для создания файла. В противном случае файл не будет создан, и не будет выброшен ошибки.

new_file = Path("/Users/pankaj/temp/xyz.txt")
print(new_file.exists())  # False
new_file.touch()
print(new_file.exists())  # True

Python Pathlib создает новый файл

Заключение

Модуль Python Pathlib очень полезен для работы с файлами и каталогами в объектно-ориентированном способе. Свободно связанный и независимый от платформы код делает его более привлекательным для использования.

Ссылка : Официальные документы – модуль PATHLIB