我需要在我的app中添加和拆分路径。我想在windows和linux上使用这个应用程序。这是我添加路径的代码
path = os.path.join(dir0,dir1,dir2,fn)
但是当我分裂斜线时,我遇到了问题。因为
Windows中的路径如下:
dir0\dir1\dir2\fn
linux中的路径
dir0/dir1/dir2/fn
现在我如何使用单个代码拆分路径(不使用其他平台/平台独立时更改代码)
答案 0 :(得分:6)
您可以使用os.sep
刚
import os
path_string.split(os.sep)
有关详细信息,请查看doc
os.path.join(path1 [,path2 [,...]]) 智能地加入一个或多个路径组件。如果任何组件是绝对路径,则抛弃所有先前组件(在Windows上,包括之前的驱动器号,如果有的话),并继续加入。返回值是path1和可选的path2等的串联,在除了最后一个之外的每个非空部分之后只有一个目录分隔符(os.sep)。 (这意味着空的最后一部分将导致以分隔符结尾的路径。)请注意,在Windows上,因为每个驱动器都有一个当前目录,所以os.path.join(“c:”,“foo”)表示相对于驱动器C上当前目录的路径:(c:foo),而不是c:\ foo。
答案 1 :(得分:5)
使用os.path.split。它是一种独立于系统的分割路径的方法。请注意,这只会分为(head, tail)
。要获取所有单个部分,您需要递归分割head
或使用str.split
作为分隔符使用os.path.sep
。