我认为我无法在这里看到更大的图景;但基本上我不知道你为什么要使用os.path.join
而不是普通的字符串连接?
我主要使用VBScript,所以我不明白这个函数的意义。
一次编写文件路径操作,它可以在许多不同的平台上免费工作。分隔字符被抽象掉,使您的工作更轻松。
您不再需要担心该目录路径是否有斜杠。os.path.join
如果需要,将添加它。
Usingos.path.join
使其他阅读您的代码的人清楚您正在使用文件路径。人们可以快速浏览代码并发现它本质上是一个文件路径。如果您决定自己构建它,您可能会分散读者发现代码实际问题的注意力:“嗯,一些字符串连接,一个替换。这是文件路径还是什么?啊!他为什么不使用os.path.join
?” :)
将在带有 '\' 的 Windows 和带有 '/' 的 Unix(包括 Mac OS X)上工作。
对于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
没有窗户,但应该有 '\'
它独立于操作系统。如果您将路径硬编码为 C:\Whatever,它们将仅适用于 Windows。如果您使用 Unix 标准“/”对它们进行硬编码,它们将仅适用于 Unix。os.path.join 检测它正在运行的操作系统并使用正确的符号连接路径。