Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅提取列表的一部分';成员';用PYTHON?_Python_List_Gis - Fatal编程技术网

如何仅提取列表的一部分';成员';用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

我的问题有点基本,但由于我是python的新手(从GIS转过来),请耐心听我说

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

例如:
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文件系统中的文件名,则是正确答案。