如何用斜杠分割路径?
我需要在我的应用程序中添加和分割路径。我想在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
作为分隔符。