如何仅提取列表的一部分';成员';用PYTHON?
我的问题有点基本,但由于我是python的新手(从GIS转过来),请耐心听我说 我有一个python列表,它基于用户插入的文件- 例如:如何仅提取列表的一部分';成员';用PYTHON?,python,list,gis,Python,List,Gis,我的问题有点基本,但由于我是python的新手(从GIS转过来),请耐心听我说 我有一个python列表,它基于用户插入的文件- 例如:inputlist=[“c:\\files\\foobar.shp”,“c:\\files\\snafu.shp”] 如何将仅文件名(不包括路径或扩展名)放入新列表中 (所需输出:[“foobar”、“snafu”]) 谢谢。您可以使用python的列表理解: new_list = [ splitext(basename(i))[0] for i in inpu
inputlist=[“c:\\files\\foobar.shp”,“c:\\files\\snafu.shp”]
如何将仅文件名(不包括路径或扩展名)放入新列表中
(所需输出:[“foobar”、“snafu”]
)
谢谢。您可以使用python的列表理解:
new_list = [ splitext(basename(i))[0] for i in inputlist ]
您可以使用python的列表理解:
new_list = [ splitext(basename(i))[0] for i in inputlist ]
这个解决方案也可以帮助您
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文件路径。您可以在我的代码中使用“//”小改动进行拆分。此解决方案对您也有帮助
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文件路径。您可以在我的代码中进行“//”小改动进行拆分。
从os.path import basename,splitext
谢谢,它成功了。只有一个问题:为什么“导入操作系统”还不够?(它仅适用于“从os.path导入basename,splitext”),因为import os
不会将名称导入到当前作用域中,而只允许您使用os.path.basename
@Film,或者,“导入名称”是否意味着使用“导入os”时,我无法将basename结果分配给变量?因为如果答案是否定的,那么我不理解你的答案。import-os
相当于os=\uu-import\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;basename=os.path.basename;delos
。因此,在第一种情况下,您的全局名称空间中有可用的模块,而在第二种情况下,此模块中只有一个名称可用。来自os.path import basename,splitext
谢谢,它起作用了。只有一个问题:为什么“导入操作系统”还不够?(它仅适用于“从os.path导入basename,splitext”),因为import os
不会将名称导入到当前作用域中,而只允许您使用os.path.basename
@Film,或者,“导入名称”是否意味着使用“导入os”时,我无法将basename结果分配给变量?因为如果答案是否定的,那么我不理解你的答案。import-os
相当于os=\uu-import\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;basename=os.path.basename;delos
。因此,在第一种情况下,您的全局命名空间中有一个可用的模块,而在第二种情况下,此模块中只有一个可用的名称。在Linux上,返回['c:\\files\\foobar',c:\\files\\snafu']
,但可能在Windows上工作。@eumiro:它也可以在--比如说--Linux上工作,因为['c:\\files\\foobar',c:\\files\\snafu']如果这些是Linux文件系统中的文件名,
将是正确的答案。在Linux上返回['c:\\files\\foobar','c:\\files\\snafu']
,但可能在Windows上工作。@eumiro:它也可以在--比如说--Linux上工作,因为['c:\\files\\foobar','c:\\files\\snafu']
如果这些是Linux文件系统中的文件名,则是正确答案。