我认为我无法在这里看到更大的图景;但基本上我不知道为什么你会使用os.path.join
而不是正常的字符串连接?
我主要使用VBScript,所以我不明白这个功能的意义。
答案 0 :(得分:61)
编写文件路径操作一次,它可以在许多不同的平台上免费使用。分隔字符被抽象出来,使您的工作更轻松。
您不再需要担心该目录路径是否有trailing slash or not。如果需要,os.path.join
会添加。
使用os.path.join
使得阅读代码的其他人明白您正在使用文件路径。人们可以快速扫描代码并发现它本质上是一个文件路径。如果你决定自己构建它,你可能会让读者不要发现代码的实际问题:“嗯,一些字符串concats,一个替换。这是一个文件路径还是什么?Gah!为什么他没有使用{{1 }}?” :)
答案 1 :(得分:5)
使用'\'和Unix(包括Mac OS X)使用'/'。
在Windows上运行对于posixpath这里是直截了当的代码
In [22]: os.path.join??
Type: function
String Form:<function join at 0x107c28ed8>
File: /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py
Definition: os.path.join(a, *p)
Source:
def join(a, *p):
"""Join two or more pathname components, inserting '/' as needed.
If any component is an absolute path, all previous path components
will be discarded."""
path = a
for b in p:
if b.startswith('/'):
path = b
elif path == '' or path.endswith('/'):
path += b
else:
path += '/' + b
return path
没有窗户,但同样应该有'\'
答案 2 :(得分:-1)
与操作系统无关。如果您将路径硬编码为C:\无论它们只适用于Windows。如果用Unix标准“/”对它们进行硬编码,它们只能在Unix上运行。 os.path.join检测它正在运行的操作系统,并使用正确的符号连接路径。