如何修复代码批量导出shapefile中各土地利用类型为独立文件
问题根因
导出文件的路径字符串没有添加f前缀启用f-string格式化,循环过程中所有导出操作写入的都是文件名为字面量{Type}.shp的同一个文件,后一次写入会直接覆盖前一次的导出结果,循环结束后自然仅保留最后一次写入的、按字母排序最末的土地利用类型数据。
修复后代码
import geopandas as gpd data = gpd.read_file('G:/My Drive/The effects of land use/Final_Land_Use_-_2015.shp') use = data.Type.unique() for land_type in use: gdf = data[data.Type == land_type] # 字符串前加f,才能正确解析大括号内的变量为实际类型名 gdf.to_file(f"Desktop/LST/{land_type}.shp")
补充说明
- 不建议使用
Type作为循环变量名,容易和Python内置的类型对象重名,引发不必要的潜在冲突,替换成语义明确的自定义变量名(比如示例里的land_type)更稳妥 - 运行代码前请确认
Desktop/LST路径真实存在,否则会触发路径不存在的运行错误
内容的提问来源于stack exchange,提问作者Mahyar
相关产品推荐
相关产品推荐

