gpt4 book ai didi

python - 为什么列表上的 os.path.join() 和列表上的 os.path.sep.join() 在功能上不相同?

转载 作者:行者123 更新时间:2023-12-01 06:42:22 25 4
gpt4 key购买 nike

我正在开发一个需要拆分和重新连接某些文件路径的程序,我不确定为什么 os.path.join(*list) 和 os.path.sep.join(list) 会产生不同的结果当分隔路径中存在驱动器号时。

import os

path = 'C:\\Users\\choglan\\Desktop'

separatedPath = path.split(os.path.sep)
# ['C:', 'Users', 'choglan', 'Desktop']

path = os.path.sep.join(separatedPath)
# C:\\Users\\choglan\\Desktop
print(path)

path = os.path.join(*separatedPath)
# C:Users\\choglan\\Desktop
print(path)

为什么会发生这种情况?即使 os.path.join(*list) 似乎更常用,我是否应该在我的程序中使用 os.path.sep.join(list) ?

最佳答案

os.path.join 并不旨在与 path.split(os.path.sep) 相反。如果您阅读docs ,您会发现一个比仅在参数之间粘贴 os.path.sep 更复杂的过程的描述。最相关的部分如下:

On Windows... Note that since there is a current directory for each drive, os.path.join("c:", "foo") represents a path relative to the current directory on drive C: (c:foo), not c:\foo.

您可能应该使用pathlib.PurePath(path).parts而不是path.split(os.path.sep)

关于python - 为什么列表上的 os.path.join() 和列表上的 os.path.sep.join() 在功能上不相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com