我认为在这里看不到大图;但是基本上我不知道为什么要使用os.path.join
普通的字符串连接而不是普通的字符串连接?
我主要使用VBScript,所以我不了解此功能的要点。
Answers:
一次编写文件路径操作,即可免费在许多不同平台上运行。分隔字符被抽象化,使您的工作更加轻松。
您不再需要担心该目录路径是否带有斜杠。os.path.join
会在需要时添加它。
使用os.path.join
使其他人很明显地看到您正在使用文件路径的代码。人们可以快速浏览代码,并从本质上发现它是文件路径。如果您决定自己构建它,则可能使读者无法发现代码的实际问题:“嗯,一些字符串连接,一个替换。这是文件路径还是什么?Gah!他为什么不使用os.path.join
?” :)
os.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
没有窗户,但也应该有'\'
/
在Windows上使用CPython的作品…