Python os.path.join と os.sep.join の違い

Q: これら 2 つの違いは何ですか?

  1. os.sep.join([ディレクトリパス, ファイル名]) を使用します。
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(ディレクトリパス, ファイル名)
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 は、より多くの知恵を使ってそれらを結合します。複数の区切り文字がある場合は、1 つに減ります。絶対パスのコンポーネント (区切り文字で始まる) がある場合、その前のパスは無視されます。

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

おすすめ

転載: blog.csdn.net/iuv_li/article/details/126281017