我想不出解决方案:
我有此列表:shapefiles
我想为列表中的每个shapefile创建一个进程,但问题是它是列表的列表:
for i in shapefiles:
inte_s = gpd.read_file(i) #Apparently it is wrong to just use i.
etc..
如何让它一次访问列表中的每个人?
要了解列表的清单,请检查这些测试。
shapefiles[0]
['C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTA\\INTE1.shp',
'C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTB\\INTE1.shp']
for i in shapefiles:
print(i)
['C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTA\\INTE1.shp',
'C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTB\\INTE1.shp']
for i in shapefiles:
print(i[0])
C:\Users\user\Desktop\fffff\INTE_PST_NO_EK_WITH_ASTTOM\INTE_SHP_TESTA\INTE1.shp
for i in shapefiles:
print(i[1])
C:\Users\user\Desktop\fffff\INTE_PST_NO_EK_WITH_ASTTOM\INTE_SHP_TESTB\INTE1.shp
答案 0 :(得分:6)
您有一个列表列表,因此请先将其展平,然后使用循环
shapefiles_flat = [file_ for sublist in shapefiles for file_ in sublist]
for i in shapefiles_flat:
#read
答案 1 :(得分:2)
似乎您在这里有一个列表列表。 shapefiles
的每个元素本身就是两个文件名的列表。因此,我建议仅嵌套两个循环:
for i in shapefiles:
for j in i:
inte_s = gpd.read_file(j)
# etc...