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