Python os.path.join和 os.sep.join的区别

Q:这2个有什么区别?

  1. 使用 os.sep.join([dirpath, filename])
for (dirpath, dirnames, filenames) in os.walk(path):
    for filename in filenames:
        if filename.endswith('.jpg'): 
            list_of_files[filename] = os.sep.join([dirpath, filename])
  1. os.path.join(dirpath, filename)
for (dirpath, dirnames, filenames) in os.walk(path):
    for filename in filenames:
        if filename.endswith('.jpg'): 
            list_of_files[filename] = os.path.join(dirpath, filename)

A:os.path.join 更可取。
os.sep只是一个字符。os.sep.join正常的字符串连接也是如此。
在这里插入图片描述

>>>type(os.sep)
<type 'str'>
>>>print os.sep.join(["foobar", "/foo/baz/", "whatever"])
foobar//foo/baz//whatever

os.path.join以更多的智慧加入他们。如果您有多个分隔符,它将减少为一个。如果您有一个绝对路径的组件(以分隔符开头),它将忽略它之前的路径,等等。

>>>print os.path.join("foobar", "/foo/baz/", "whatever")
/foo/baz/whatever

猜你喜欢

转载自blog.csdn.net/iuv_li/article/details/126281017
今日推荐