使用配置文件、string.format() 和 pathlib Path 创建文件路径

Creating file path with config file, string.format() and pathlib Path

这看起来微不足道,但我在使用 pathlib 的 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)

你只需要os.path.join:

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

欢迎。经过大惊小怪,这成功了:

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

这应该有效:

log_file = Path(self.log_path) / today_file

您希望第一个对象的类型为 Path,其余的可以是字符串,因为 pathlib 会处理它。