pathlib¶
New in version python: 3.4
import pathlib
Path()¶
- class
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)
-
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
-
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
-