我相应地收集了以PST.shp
和DBOUND.shp
结尾的文件。然后将其保存为代码显示的列表。
列表ps
['C:\\Users\\user\\Desktop\\sa\\43001\\PST\\PST.shp',
'C:\\Users\\user\\Desktop\\sa\\43003\\PST\\PST.shp']
和db
['C:\\Users\\user\\Desktop\\sa\\43001\\DBOUND\\DBOUND.shp',
'C:\\Users\\user\\Desktop\\sa\\43003\\DBOUND\\DBOUND.shp']
稍后,应该处于循环中,该循环使用每个列表中的第一对并执行操作。然后第二对,依此类推:
赞:
for i in list(zip(ps,db)):
db1 = gpd.read_file(db[0])
pst1 = gpd.read_file(ps[0])
db1['geometry'] = dbound.buffer(0.001)
wdp = gpd.sjoin(pst1, db1, how="left", op='within')
问题是如何在不设置[0]的情况下每次都执行此操作,但是会在每次迭代中对所有现有对自动进行设置?
更新
在导出过程中,每次导出将替换循环中的上一个方法,即如何在具有原始文件夹名称的文件夹中分别导出它们,如下所示: 如果目录为'C:\ Users \ user \ Desktop \ sa \ 43001 \ PST \ PST.shp`,则创建一个名为43001的文件夹,并具有导出的文件,其余文件相同。这是我的导出代码。
o = r'C:\Users\user\Desktop\resultss'
out = o+'\\'+'pst'
wdp.to_file(out)
答案 0 :(得分:3)
您可以只使用zip
。
例如:
for i, v in zip(ps,db):
db1 = gpd.read_file(v)
pst1 = gpd.read_file(i)
db1['geometry'] = dbound.buffer(0.001)
wdp = gpd.sjoin(pst1, db1, how="left", op='within')