如何在PYTHON中仅提取列表“成员”的一部分?

时间:2011-03-22 10:05:11

标签: python list gis

我的问题有点基础,但由于我是python的新手(从GIS交叉),请耐心等待。

我有一个python列表,它基于用户插入的文件 -

例如:inputlist =["c:\\files\\foobar.shp","c:\\files\\snafu.shp"]

如何仅将文件名(没有路径或扩展名)放入新列表中?

(所需输出:["foobar","snafu"]

感谢。

4 个答案:

答案 0 :(得分:4)

您可以使用python的列表推导:

new_list = [ splitext(basename(i))[0] for i in inputlist ]

答案 1 :(得分:2)

[os.path.basename(p).rsplit(".", 1)[0] for p in inputlist]

答案 2 :(得分:1)

import os.path
extLessBasename = lambda fn: os.path.splitext(os.path.basename(fn))[0]
fileNames = map(extLessBasename, inputlist)

答案 3 :(得分:0)

此解决方案也可以为您提供帮助。

import os
inputlist =["/home/anupam/PycharmProjects/DataStructures/LogicalProgram/classvsstatic.py",
            "/home/anupam/PycharmProjects/DataStructures/LogicalProgram/decorators.py"]
filename_list = []
for i in inputlist:
    path_list =i.split('/')
    filename_with_extension = path_list[-1]
    filename_without_extension = os.path.splitext(filename_with_extension)[0]
    filename_list.append(filename_without_extension)

print(filename_list) 

根据Windows文件路径。您可以在代码中加上'//'小改动。