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

时间:2018-12-22 02:23:33

标签: python-3.x path pathlib

这似乎微不足道,但是我在使用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)

3 个答案:

答案 0 :(得分:1)

这应该有效:

log_file = Path(self.log_path) / today_file

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

答案 1 :(得分:0)

您需要的是os.path.join

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

答案 2 :(得分:0)

欢迎。在大惊小怪之后,这成功了:

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