Как проверить права доступа к папке / файлу с помощью Pathlib - PullRequest
0 голосов
/ 24 октября 2019

Есть ли Pathlib эквивалент os.access()?

Без Pathlib код будет выглядеть так:

import os
os.access('my_folder', os.R_OK)  # check if script has read access to folder

Однако в моем коде я имею дело с путями Pathlib,поэтому мне нужно сделать это (это всего лишь пример):

# Python 3.5+
from pathlib import Path
import os

# get path ~/home/github if on Linux
my_folder_pathlib = Path.home() / "github"
os.access(str(my_folder_pathlib), os.R_OK)

Приведение к str() довольно уродливо. Мне было интересно, есть ли чистое решение Pathlib для того, чего я пытаюсь достичь?

ps Мне известен принцип «проще просить прощения», однако эточасть большей структуры, и мне нужно как можно скорее узнать, имеет ли сценарий необходимые права доступа к папке, хранящейся на NAS.

1 Ответ

1 голос
/ 24 октября 2019

Начиная с Python 3.6, os.access() принимает объекты, подобные траектории, поэтому str() больше не требуется: https://docs.python.org/3/library/os.html#os.access

Хотя это все еще не чисто решение Pathlib.

...