Как проверить, существует ли файл с одинаковым именем с разными расширениями, используя Python - PullRequest
3 голосов
/ 13 мая 2019

Я довольно плохо знаком с файлами и в настоящее время пишу метод, в котором я мог бы передать путь file.pom и проверить, существуют ли файлы .jar по тому же пути.

def get_file_type(self, file_path):
    return pathlib.Path(file_path).suffix

def check_if_file_exists(self, pom_file_path, extension):
    pom_file_extract_file = str(pom_file_path).rpartition("/")
    pom_file_extract_filename = str(pom_file_extract_file [-1]).rpartition("-")
    if pom_file_extract_filename ... # stuck

....

for file in files:
    f = os.path.join(zip_path, file)
        f_fixed = "." + f.replace("\\", "/")
        if self.get_file_type(f_fixed) == ".pom":
            pom_paths = (root + "/" + file).replace("\\", "/")
            print(pom_paths)

            # if self.check_if_file_exists(pom_paths, ".jar") == True:
            #     Do stuff...

Должен ли я передать каталог pom

Ответы [ 2 ]

4 голосов
/ 13 мая 2019

pathlib имеет несколько удобных функций для этого:

from pathlib import Path

p = Path('./file.pom')

p.with_suffix('.jar').exists()

Тогда ваша функция будет:

def check_if_file_exists(self, pom_file_path, extension):
    return pom_file_path.with_suffix(extension).exists()
0 голосов
/ 13 мая 2019

Найден в pathlib метод is_file(), использование которого помогло мне разобраться в моей проблеме:

def check_if_file_exists(self, pom_file_path, extension):
    pom_file_path_one = str(pom_file_path).rpartition("/")
    pom_file_path_two = str(pom_file_path_one[-1]).rpartition(".")
    extension_file = pathlib.Path(pom_file_path_one[0] + "/" + pom_file_path_two[0] + extension)
    if extension_file.is_file():
        return True
    else:
        return False

EDIT

Хотя, я использую этот метод для поиска -javadoc.jar файлов.

...