如何从使用python的路径分割文件名?

问题描述:

我有一个像这样的文件列表:如何从使用python的路径分割文件名?

输入

/foo/bar/baz/d4dc7c496100e8ce0166e84699b4e267fe652faeb070db18c76669d1c6f69f92.mp4 
/foo/baz/bar/60d24a24f19a6b6c1c4734e0f288720c9ce429bc41c2620d32e01e934bfcd344.mp4 
/bar/baz/foo/cd53fe086717a9f6fecb1d0567f6d76e93c48d7790c55e83e83dd1c43251e40e.mp4 

而且我想从路径拆分出来的文件名,同时保留两个。

输出

['/foo/bar/baz/', 'd4dc7c496100e8ce0166e84699b4e267fe652faeb070db18c76669d1c6f69f92.mp4'] 
['/foo/baz/bar/', '60d24a24f19a6b6c1c4734e0f288720c9ce429bc41c2620d32e01e934bfcd344.mp4'] 
['/bar/baz/foo', 'd53fe086717a9f6fecb1d0567f6d76e93c48d7790c55e83e83dd1c43251e40e.mp4'] 

一个怎么会去吗?

谢谢!

os.path.split不正是您所需要的,我引用...:

os.path.split(path) 

斯普利特名path成一对, (头,尾),其中尾是最后 路径组件和头是 一切都导致了。 尾部不会包含斜线; 如果路径以斜线结尾,尾部将为 为空。如果路径中没有斜线,则 标题将为空。如果路径为空, 头部和尾部都是空的。尾部 斜线从头部除去,除非 它是根部(仅限一条或多条斜线 )。在几乎所有情况下,连接(头部, 尾部)等于路径(唯一的例外是 ,当时有多个斜杠 将头部从尾部分离)。

所以,对于一个列表(例如命名为paths)的完整路径,

split_paths = [os.path.split(p) for p in paths] 

应该是完全列表的元组你的愿望。如果有任何实际的理由让你请求列表而不是自然列表的元组,那么这并不难:

split_paths_as_lists = [list(os.path.split(p)) for p in paths] 
+0

完美地工作。谢谢。 – 2010-05-31 01:20:24

+0

@Rasputin,你很受欢迎! – 2010-05-31 01:29:50