New in version python: 3.4
import pathlib
pathlib.
Path
from pathlib import Path
Path(r'C:\Users\ilnurgi\test.txt')
# WindowsPath('C:/Users/ilnurgi/test.txt')
path = Path.home() / 'ilnurgi.txt'
# PosixPath('/home/ilnurgi/ilnurgi.txt')
with path.open(mode='r') as f:
pass
anchor
Path.home().anchor
# '/'
# windows
Path('c:/Program Files/').anchor
# 'c:\\'
# windows
Path('c:Program Files/').anchor
# 'c:'
# windows
Path('//host/share').anchor
# '\\\\host\\share\\'
drive
# windows
Path('c:/Program Files/').drive
# 'c:'
# windows
Path('/Program Files/').drive
# ''
# windows
PureWindowsPath('//host/share/foo.txt').drive
# '\\\\host\\share'
Path('/etc').drive
# ''
name
Имя файла без пути, но с расширением
Path.home().name
# ilnurgi
parent
Родительская папка объекта
Path.home().parent
# PosixPath('/home')
parents
Возвращает список родителей
Path.home().parents
"""
[
Path('/home'),
Path('/'),
]
"""
parts
Возвращает кортеж пути
Path.home().parts
# ('/', 'home', 'ilnurgi')
# windows
Path.home().parts
# ('c:\\', 'Users', 'ilnurgi')
root
Корень пути
# windows
Path('c:/Program Files/').root
# '\\'
# windows
Path('c:Program Files/').root
# ''
# windows
Path('//host/share').root
# '\\'
PurePosixPath('/etc').root
'/'
stem
Имя файла без расширения
(Path.home() / 'ilnurgi.txt').stem
# 'ilnurgi'
suffix
Расширение файла
(Path.home() / 'ilnurgi.txt').suffix
# '.txt'
suffixes
Расширение файла
(Path.home() / 'ilnurgi.tar.gz').suffixes
# ('.tar', '.gz')
as_posix
()Возвращает путь в формате posix
Path('c:\\windows').as_posix()
# 'c:\\windows'
as_uri
()Возвращает путь в формате URI
Path('/etc/passwd').as_uri()
# 'file:///etc/passwd'
Path('c:/Windows').as_uri()
# 'file:///c:/Windows'
chmod
(mod)Меняет права, также как и os.chmod()
Path('setup.py').stat().st_mode
# 33277
Path('setup.py').chmod(0o444)
Path('setup.py').stat().st_mode
# 33060
cwd
()Возвращает путь до рабочей директории
Path.cwd()
# PosixPath('/home/ilnurgi/')
exists
()Существует ли путь
Path.home().exists()
# True
expanduser
()New in version python: 3.5
Путь до домашней папки пользователя, os.path.expanduser()
Path.cwd().expanduser()
# '/home/ilnurgi/'
glob
(pattern)Возвращет все файлы по вхождению
Path.home().glob('*.py')
# ['ilnurgi.py']
group
()Возвращает имя группы владельца пути
Path.home().group
# 'ilnurgi_group'
home
()New in version python: 3.5
Возвращает путь до домашней папки пользователя
Path.home()
# PosixPath('/home/ilnurgi')
is_absolute
()Является ли путь абсолютным
Path.home().is_absolute()
# True
is_block_device
()Path.home().is_block_device()
# False
is_char_device
()Path.home().is_char_device()
# False
is_dir
()Путь является папкой
Path.home().is_dir()
# True
is_fifo
()Path.home().is_fifo()
# False
is_file
()Путь является файлом
Path.home().is_file()
# False
is_mount
()Путь является примонтированным объектом
Path.home().is_mount()
# False
is_reserved
()Является ли путь зарезервированным, актуально для windows
PureWindowsPath('nul').is_reserved()
# True
is_socket
()Является ли путь сокетом
Path.home().is_socket()
# False
is_symlink
()Является ли путь симлинком
Path.home().is_symlink()
# False
iterdir
()Возвращает генератор, списко объектов в директории
for i in Path.home().iterdir():
print(i)
# PosixPath('/home/ilnurgi/ilnurgi.txt')
# ...
joinpath
(*other)Объединяет пути
Path.home().joinpath('ilnurgi.txt')
# '/home/ilnurgi/ilnurgi.txt'
lchmod
(mode)Также как и Path.chmod()
меняет права и для символьных ссылок тоже
Path('setup.py').lchmod(0o444)
lstat
()Возвращает сведения по пути, os.stat()
и для сивольных ссылок
match
(pattern)Path.home().joinpath('ilnurgi.txt').match('*.txt')
# True
mkdir
(mode=0o777, parents=False, exist_ok=False)Создает файл по указанному пути
(Path.home() / 'ilnurgi').mkdir()
open
()Открывает и возвращает файловый дескриптор
with Path('setup.py').open() as f:
...
owner
()Возвращает автора файла
Path.home().owner()
# 'ilnurgi'
read_bytes
()New in version python: 3.5
Читает и возвращает байтовое содержимое объекта
(Path.home() / 'ilnurgi.txt').read_bytes()
# b'Hello ilnurgi!'
read_text
(encoding=None, errors=None)New in version python: 3.5
Читает и возвращает строковое содержимое объекта
(Path.home() / 'ilnurgi.txt').read_text()
# 'Hello ilnurgi!'
relative_to
(*other)PurePosixPath('/etc/passwd').relative_to('/')
# PurePosixPath('etc/passwd')
PurePosixPath('/etc/passwd').relative_to('/etc')
# PurePosixPath('passwd')
PurePosixPath('/etc/passwd').relative_to('/usr')
"""
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pathlib.py", line 694, in relative_to
.format(str(self), str(formatted)))
ValueError: '/etc/passwd' does not start with '/usr'
"""
rename
(target)Переименовывает объект по пути
(Path.home() / 'ilnurgi.txt').rename('ilnurgi.log')
resolve
(strict=False)New in version параметр: strict добавлен python 3.6
Возвращает полный путь до объекта
Path.home().resolve()
# PosixPath('/home/ilnurgi/')
rglob
(pattern)Рекурсивный обход пути по поиску объектов
sorted(Path().rglob("*.py"))
"""
[
PosixPath('build/lib/pathlib.py'),
PosixPath('docs/conf.py'),
PosixPath('pathlib.py'),
PosixPath('setup.py'),
PosixPath('test_pathlib.py')
]
"""
rmdir
()Удаляет папку по пути, папка должна быть пустая
samefile
()New in version python: 3.5
stat
()Возвращает сведения по пути, os.stat()
symlink_to
(target, target_is_directory=False)Создает симлинк по указанному target
Path.home().symlink_to(Path.home() / 'home_ilnurgi')
touch
(mode=0o666, exist_ok=True)Создает файл по указанному пути
(Path.home() / 'ilnurgi.txt').touch()
unlink
(name)Удаляет файл или символическую ссылку.
with_name
(name)Меняет имя у пути
(Path.home() / 'ilnurgi.txt').with_name('ilnurgi.log')
# PosixPath('/home/ilnurgi/ilnurgi.log')
with_suffix
(suffix)Меняет расширение у файла
(Path.home() / 'ilnurgi.txt').with_suffix('.log')
# PosixPath('/home/ilnurgi/ilnurgi.log')
write_bytes
(data)New in version python: 3.5
Записывает байты данных в файл
(Path.home() / 'ilnurgi.txt').write_bytes(b'Hello ilnurgi!')
# 10
write_text
(data, encoding=None, errors=None)New in version python: 3.5
Записывает строковые данные в файл
(Path.home() / 'ilnurgi.txt').write_text('Hello ilnurgi!')
# 20