1

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

3 回答 3

2

这应该有效:

log_file = Path(self.log_path) / today_file

您希望第一个对象是 type Path, rest 可以是字符串,因为 pathlib 会处理它。

于 2018-12-22T10:17:34.203 回答
0

您只需要os.path.join

log_file = os.path.join(self.log_path, today_file)
于 2018-12-22T03:41:19.453 回答
0

哎呀。经过一番大惊小怪,这成功了:

log_file = Path(Path(self.log_path) / Path(today_file))
于 2018-12-22T04:25:32.450 回答