下面的代码将不会连接,在调试时,命令不存储整个路径,而只存储最后一个条目。

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

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


当前回答

像这样,去掉多余的斜杠

root="/home"
os.path.join(root,"build","test","sandboxes",todaystr,"new_sandbox")

其他回答

Os.path.join()可以与os.path.sep一起使用来创建一个绝对路径,而不是相对路径。

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

请参考下面的代码片段来理解os.path。加入(a, b)

a = '/home/user.name/foo/'
b = '/bar/file_name.extension'

print(os.path.join(a, b))
>>> /bar/file_name.extension

OR

a = '/home/user.name/foo'
b = '/bar/file_name.extension'
print(os.path.join(a, b))
>>> /bar/file_name.extension

但是,当

a = '/home/user.name/foo/'
b = 'bar/file_name.extension'

print(os.path.join(a, b))
>>> /bar/file_name.extension

OR

a = '/home/user.name/foo'
b = 'bar/file_name.extension'
print(os.path.join(a, b))
>>> /home/user.name/foo/bar/file_name.extension

只使用new_sandbox试试

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

这是因为'/new_sandbox/'以/开头,因此被认为是相对于根目录的。去掉前导的/。

os.path.join()的思想是让你的程序跨平台(linux/windows/etc)。

一刀就毁了它。

所以它只有在与某种参考点一起使用时才有意义 操作系统。environ['HOME']或os.path.dirname(__file__)。