如何用斜杠分割路径?

7 投票
2 回答
17717 浏览
提问于 2025-04-18 00:58

我需要在我的应用程序中添加和分割路径。我想在Windows和Linux上都能使用这个应用。下面是我用来添加路径的代码:

 path = os.path.join(dir0,dir1,dir2,fn)

但是当我用斜杠来分割路径时遇到了问题。因为

在Windows上的路径是这样的:

dir0\dir1\dir2\fn

而在Linux上的路径是这样的:

dir0/dir1/dir2/fn

那么我该如何用一段代码来分割路径呢(不想在不同平台上修改代码,希望它能在任何平台上都能用)

2 个回答

15

你可以使用 os.sep 来处理路径分隔符。

简单来说,

import os
path_string.split(os.sep)

想了解更多信息,可以查看这个 文档

os.path.join(path1[, path2[, ...]]) 是一个用来智能地连接一个或多个路径的函数。如果其中任何一个路径是绝对路径,那么之前的所有路径(在Windows上,包括之前的驱动器字母,如果有的话)都会被丢弃,然后继续连接。返回的结果是将 path1 和可选的 path2 等连接在一起,中间用一个目录分隔符(os.sep)分开,除了最后一个部分以外,每个非空部分后面都有一个分隔符。(这意味着如果最后一个部分是空的,结果路径会以分隔符结尾。)需要注意的是,在Windows上,由于每个驱动器都有当前目录,os.path.join("c:", "foo") 表示的是相对于C:驱动器当前目录的路径(c:foo),而不是 c:\foo。

10

可以使用 os.path.split 这个方法。它是一种不依赖于系统的路径分割方式。需要注意的是,这个方法只会把路径分成 (头, 尾) 两部分。如果你想要得到路径的所有单独部分,就需要对 进行递归分割,或者使用 str.split 方法,使用 os.path.sep 作为分隔符。

撰写回答