pathlib和字符串连接的控制顺序

2024-06-26 13:38:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个要保存文件的目录,保存为名为dirPath对象。我想使用字符串连接在该路径上自动生成文件名

只有通过字符串连接,我才能在一行中实现这一点:

dir = Path('./Files')
constantString = 'FileName'
changingString = '_001'

path2newfile = dir.as_posix() + '/' + constantString + changingString

print(path2newfile) # ./Files/Filename_001

。。。它过于冗长,不独立于平台

我想做的是使用pathlib的/操作符来轻松地操作新的文件路径,该路径也是独立于平台的。这需要确保首先进行字符串连接,但我知道的唯一方法是设置一个(无意义)变量:

filename = constantString + changingString
path2newfile = dir / filename

但我真的不明白为什么要用两行

如果我假设使用“实际”字符串(即不包含字符串的变量),我可以这样做:

path2newfile = dir / 'Filename' '_001'

但这不适用于变量

path2newfile = dir / constantString changingString
# SyntaxError: invalid syntax

因此,我认为基本问题是如何控制python中运算符的顺序?或者至少使串联运算符+在路径运算符/之前起作用

请记住,这是一个MWE。我的实际问题有点复杂,必须在代码中重复多次


Tags: 文件path对象字符串路径目录dir运算符
3条回答

只需在字符串扭曲周围使用括号:

path2newfile = dir / (constantString + changingString)

使用os.path.join()
它是独立于平台的,您可以将所需的路径部分作为参数插入

您考虑过使用Python f字符串吗

您的真实示例似乎有一种“template-y”的感觉,例如:

path / f"constant part {variable_part}"

可能有用

相关问题 更多 >