Python os.path.join 错误地附加路径

标签 python python-os

python os 模块似乎错误地连接了路径。要复制,只需运行以下代码:

import os
p1 = "/1/2"
p2 = "/3/4"
print(os.path.join(p1,p2))

这将打印“/3/4”。这是预期的行为吗?我希望它打印 "/1/2/3/4"

最佳答案

That is by design :

If a component is an absolute path, all previous components are thrown away and joining continues from the absolute path component.

如果3/4应该是/1/2的子目录,则省略前导的/:

import os

p1 = "/1/2"
p2 = "3/4"
print(os.path.join(p1,p2))

Olvin Roght suggests ,您还可以使用如下方式从 p2 中删除前导斜杠:

p2 = p2.lstrip("/\\")

如果无法直接修改字符串,则在尝试加入之前。这将从字符串中删除 /\ 字符。

关于Python os.path.join 错误地附加路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70675058/

相关文章:

python - 在 Mac OS 10.6.6 中使用 python-mysql 配置 django 时出错

python - python 中 os.rename 的中断

python - cwd的字符串变量

python - os.environ[] 从 .env 文件访问变量的 KeyError

python - 如何在没有省略号的情况下打印所有 eli5.explain_weights() 结果?

Python:结构化数据的惯用属性?

python - 通过计算有效地将多个 DataFrame 列的数据类型一次性全部转换为一种数据类型

Python 对 If-Else 条件语句的求值

python - os.path.join 中缺少斜杠来自 tkinter filedialog

python - 上次修改时间函数为现有有效文件返回 0.0 - `getmtime` + `stat.st__mtime`