在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但第一个没有。 我一定不明白加入文档,但我不明白为什么我得到不同的输出。提前致谢
从join()
文档字符串:
如果组件是绝对路径,则丢弃所有先前的组件,并从绝对路径组件继续连接。
'/Documents/Jeopardy/output'
是绝对路径,因此丢弃第一部分。
行为上讲,使用相对路径而不是绝对路径可以说更有意义;在绝对路径前面附加任何东西并没有多大意义,因为它已经从 FS 根开始了。