Создание пути к файлу с помощью файла конфигурации, string.format () и Pathlib Path - PullRequest
0 голосов
/ 22 декабря 2018

Это кажется тривиальным, но у меня возникают проблемы при создании пути с помощью Pathlib's Path ().

Во-первых, я собираю пользовательский ввод для местоположения, которое они хотят, чтобы их выходной каталог через файл конфигурации.

Затем я создаю переменную экземпляра с путями к файлам:

import time
from pathlib import Path

class MyStuff():
    def __init__(self,
                 output_file):
        self.output_file = output_file

    ## Setup logging ###
    today = time.strftime("%Y%m%d")
    now = time.strftime("%Y%d%m_%H:%M:%S")
    today_file = "{}_ShortStack.log".format(today)

И затем я пытаюсь создать файл журнала с сегодняшней датой.Я пробовал следующее:

log_file = Path("{}{}".format(self.log_path, today_file))

log_file = Path(self.log_path / today_file)

log_file = Path(self.log_path.joinpath(Path(today_file)))

Если кто-то вводит:

output_dir =./

в своем конфигурационном файле, pathlib продолжает помещать вокруг него кавычки, независимо от того, что я пытаюсь, как показано ниже:

"./"20181221_ShortStack.log

Я тоже сначала попытался сделать это, чтобы посмотреть, помогло ли это.Это не так.

self.output_file = Path(output_file)

Ответы [ 3 ]

0 голосов
/ 22 декабря 2018

Welp.После долгих суеты это помогло:

log_file = Path(Path(self.log_path) / Path(today_file))
0 голосов
/ 22 декабря 2018

Это должно работать:

log_file = Path(self.log_path) / today_file

Вы хотите, чтобы первый объект был типа Path, остальные могут быть строками, так как pathlib позаботится об этом.

0 голосов
/ 22 декабря 2018

Все, что вам нужно здесь, это os.path.join:

log_file = os.path.join(self.log_path, today_file)
...