使用配置文件、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 会处理它。
这看起来微不足道,但我在使用 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 会处理它。