需要注意的一点是(根据os.path.join文档)如果提供绝对路径作为其中一个参数,则其他元素将被丢弃.例如(在Linux上):
In [1]: import os.path
In [2]: os.path.join('first_part', 'second_part')
Out[2]: 'first_part/second_part'
In [3]: os.path.join('first_part', r'/second_part')
Out[3]: '/second_part'
在Windows上:
>>> import os.path
>>> os.path.join('first_part', 'second_part')
'first_part\\second_part'
>>> os.path.join('first_part', '/second_part')
'/second_part'
由于在join参数中包含一个前导/,它被解释为绝对路径,因此忽略其余的.因此,您应该从第二个参数的开头删除/,以使连接按预期执行.你不必包含/的原因是因为os.path.join隐式使用os.sep,确保使用正确的分隔符(注意上面输出的差异为os.path.join(‘first_part’, ‘第二部分’).