Найти - Пользователи
Полная версия: Проверить валидность имени дирректории
Начало » Python для новичков » Проверить валидность имени дирректории
1
kripton3000
Задача: Необходимо проверить сгенерированный путь, манипуляции производятся в Linux, т.е. имена дирректорий генеряться только *nix'овые, windows'кие имена дирректорий не рассматриваются.

Функция генерации пути:

def create_local_dir(init_local_path=None, path_customer=None, path_action=None, when=None):
        local_dir = ""
        path_datetime = datetime.now().strftime("%Y_%m_%d")
        if not init_local_path:
            init_local_path = "temp"
        else:
            if not path_customer:
                path_customer = "none_customer"
            else:
                if not path_action:
                    path_action = "none_action"
                else:
                    if not when:
                        local_dir = "/" + init_local_path + "/" + path_customer + "/" + path_action + "/"
                    else:
                        local_dir = "/" + init_local_path + "/" + path_customer + "/" + path_action + "/" + path_datetime + "/"
        return str(local_dir)


Если есть стандартные функции библиотеки ткните носом, не хотелось бы городить собственный велосипед.
Конкретно нужно проверить является ли сгенерированный путь валидным для Linux системы, если не является вернуть False, если является вернуть путь. Всё делается, чтобы не получить путь вида “/tmp/*&^%&///”, естественна такую дирректорию будет невозможно создать.
Budulianin
kripton3000
else:
if not path_customer:

elif not path_customer:

Budulianin
Если есть стандартные функции библиотеки ткните носом, не хотелось бы городить собственный велосипед.

Вот такой нету:

os.path.is_valid_path(path)

Надо самому писать


kripton3000
Всё делается, чтобы не получить путь вида “/tmp/*&^%&///”, естественна такую дирректорию будет невозможно создать.

Такую он не создаст, он создаст /tmp/*&^%&

В Linux имена файлов и каталогов могут быть длиной не более 256 символов, и могут содержать любые символы, кроме “ / ”.
dimy44
юзайте os.path.join
import os
a, b, c, d = '/', 'x', 'y', 'z'
print(os.path.join(a, b, c, d))
>>> /x/y/z
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB