Rasterio写入栅格文件时触发权限拒绝错误
问题分析与解决:rasterio权限拒绝错误
运行以下代码时出现CPLE_AppDefinedError: Deleting results\testiff_point.tif failed: Permission denied错误:
with rasterio.Env(): profile = raster.profile profile.update( dtype=rasterio.uint8, count=1, compress='lzw') with rasterio.open(out_file_path, 'w', **profile) as dst: dst.write(im.astype(rasterio.uint8), 1)
可能的原因及解决方法:
目标文件被其他程序占用:
检查是否有GIS软件(如QGIS、ArcGIS)、文件预览窗口、图像编辑器等正在打开testiff_point.tif,关闭这些程序后重新运行代码。输出目录权限不足:
确认results文件夹是否允许当前用户写入/删除文件。可以右键文件夹→属性→安全,检查当前用户的权限;或者更换到用户有完全权限的目录(比如C:\Users\你的用户名\Documents)作为输出路径。文件本身为只读属性:
右键testiff_point.tif→属性,取消勾选“只读”选项,再重新执行代码。未正确关闭之前的文件句柄:
如果代码中之前有打开该文件的操作,确保都使用了with上下文管理器(自动关闭句柄),或者手动调用了close()方法,避免文件被锁定。安全软件拦截:
部分杀毒软件、防火墙会拦截程序对文件的修改操作,可临时关闭安全软件测试,或把输出目录添加到安全软件的信任列表中。
内容的提问来源于stack exchange,提问作者Malhar Khisty
相关产品推荐
相关产品推荐

