如何解决pathlib和字符串串联的控制顺序
我有一个要保存文件的目录,另存为名为Path
的{{1}}对象。我想使用字符串连接在该路径下自动生成文件名。
让它在一行中起作用的唯一方法是仅通过字符串连接:
dir
...太冗长,与平台无关。
我想要做的是使用pathlib的dir = Path('./Files')
constantString = 'FileName'
changingString = '_001'
path2newfile = dir.as_posix() + '/' + constantString + changingString
print(path2newfile) # ./Files/Filename_001
运算符来轻松操纵与平台无关的新文件路径。这将需要确保首先进行字符串连接,但是我唯一知道的方法是设置一个(无意义的)变量:
/
但是,老实说,我不明白为什么这要花两行。
如果我假设使用“实际”字符串(即不包含字符串的变量),则可以执行以下操作:
filename = constantString + changingString
path2newfile = dir / filename
但这不适用于变量。
path2newfile = dir / 'Filename' '_001'
所以我认为基本问题是如何控制python中的运算符顺序?还是至少让串联运算符path2newfile = dir / constantString changingString
# SyntaxError: invalid syntax
在Path运算符+
之前起作用
请记住,这是MWE。我的实际问题有些复杂,必须在代码中重复几次。
解决方法
只需在字符串污染周围使用括号:
path2newfile = dir / (constantString + changingString)
,
您是否考虑过使用Python f字符串?
似乎您的真实示例对它具有“ template-y”的感觉,所以类似:
path / f"constant part {variable_part}"
可能有效。
,使用os.path.join()。
它既与平台无关,也可以插入所需的路径部分作为参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。