在os.join中的文档中添加斜杠会产生不同的结果,而我认为不应该这样。为什么?
只需尝试编写可为多个用户完成合理工作的代码即可。
import os
# Initialize output files and folders, following principle of separating code from data
homeDir = os.path.expanduser('~')
targetDir = os.path.join(homeDir, '/Documents/Jeopardy/output')
print(targetDir)
# produces /Documents/Jeopardy/output which is not expected
targetDir = os.path.join(homeDir, 'Documents/Jeopardy/output')
print(targetDir)
# produces /home/max/Documents/Jeopardy/output which is expected
我希望两个联接都能产生 / home / max / Documents / Jeopardy / output 但是第一个没有。我一定不明白联接文档,但是我看不到为什么得到不同的输出。 预先感谢
答案 0 :(得分:1)
如果组件是绝对路径,则所有先前的组件都将被丢弃,并且连接将从绝对路径组件继续。
'/Documents/Jeopardy/output'
是绝对路径,因此第一部分将被丢弃。
从行为上讲,使用相对而非绝对路径更有意义。将任何内容放在绝对路径之前没有任何意义,因为它已经从FS根目录开始。