我有一段代码,从目录中检查要存储哪些文件以供以后处理:
for i in glob(r'C:\Users\user\Desktop\fol' + '**/*/*/*', recursive=True):
if i.endswith('PAD.shp'):
print(i)
pad = gpd.read_file(i)
if i.endswith('DND.shp'):
print(i)
dnd = gpd.read_file(i)
只存储dnd
。虽然还有剩余的,但它不储存。你知道吗
为了让你知道发生了什么,检查一下它在哪里打印出它发现的东西:
for i in glob(r'C:\Users\user\Desktop\fol' + '**/*/*/*', recursive=True):
if i.endswith('PAD.shp'):
print('PAD:'+i)
elif i.endswith('DND.shp'):
print('DND:'+i)
它给出:
DND:C:\Users\user\Desktop\fol\43001\DND\DND.shp
PAD:C:\Users\user\Desktop\fol\43001\PAD\PAD.shp
DND:C:\Users\user\Desktop\fol\43003\DND\DND.shp
PAD:C:\Users\user\Desktop\fol\43003\PAD\PAD.shp
如何从每个文件夹获取每个迭代中的dnd
和pad
文件?你知道吗
我认为可能是错的:
它搜索目录,因为它首先存储dnd
(正如它在最后一段代码中打印所有内容所看到的那样),所以它不必检查目录的其余部分。因此pad
没有任何赋值。你知道吗
解决方案
一个解决方案是强制迭代从同一个文件夹(例如文件夹43001
)中分配每个dnd
和pad
,然后继续计算,完成后再使用下一个文件夹和正确的对。你知道吗
如何做到这一点?你知道吗
我不知道你的代码中到底发生了什么,但也许可以尝试下面的代码来帮助调试
只是为了更密切地跟踪正在发生的事情,看看到底加载了什么/是否有任何错误
相关问题 更多 >
编程相关推荐