小编典典

为什么 os.path.join() 在这种情况下不起作用?

all

下面的代码不会加入,调试时该命令不存储整个路径,而只存储最后一个条目。

os.path.join('/home/build/test/sandboxes/', todaystr, '/new_sandbox/')

当我测试它时,它只存储/new_sandbox/部分代码。


阅读 119

收藏
2022-03-28

共1个答案

小编典典

后面的字符串不应该以斜杠开头。如果它们以斜线开头,则它们被视为“绝对路径”,并且它们之前的所有内容都将被丢弃。

引用Python
文档os.path.join

如果组件是绝对路径,则所有先前的组件都将被丢弃,并从绝对路径组件继续连接。

请注意在 Windows 上,与驱动器号相关的行为,与早期的 Python 版本相比似乎发生了变化:

在 Windows
上,当遇到绝对路径组件(例如,)时,不会重置驱动器号r'\foo'。如果组件包含驱动器号,则所有以前的组件都将被丢弃并重置驱动器号。请注意,由于每个驱动器都有一个当前目录,因此os.path.join("c:", "foo")表示相对于驱动器C:( c:foo) 上当前目录的路径,而不是c:\foo.

2022-03-28