python版本gdal中在py文件中创建的栅格影像如何正常关闭并使得其可以删除
python版本gdal中在py文件中创建的栅格影像如何正常关闭并使得其可以删除
测试py文件代码:
#coding:gb2312
import os
from osgeo import gdal
from osgeo import ogr
from osgeo.gdalconst import *
driver=gdal.GetDriverByName('GTiff')
gdal.AllRegister()
#创建一个文件浮点型的tif影像
testfile=r'c:test.tif'
outDataset=driver.Create(testfile,2762,2353,1,GDT_Float32)
os.remove(testfile)
如果在python命令行或者以py执行上述代码会出现如下报错:
WindowsError: [Error 32] : 'c:\test.tif'
testfile文件就无法删除
但是如果新开一个python命令行窗口,也就是新打开一个python进程
单独执行:
import os
os.remove(testfile)
文件可以被正常删除
疑问:Error 32是文件已经打开的错误,而没有关闭文件了所致,也就是outDataset没有被正常关闭所致
但是在python C++代码中提到了GDALClose()方法,但是我并没有在python的版本中发现对应的。
另外python中变量应该是垃圾自动回收机制的,我做了以下尝试:
在py脚本的os.remove(testfile)之前加了
outDataset.FlushCache()
或者outDataset=None
但是问题依然没有解决。
请教下 如何才能在py中正确关闭创建的影像,并可以使之删除。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
outDataset=None是官方推荐的方法,通过Python垃圾回收机制关闭,理论上是可行的,除非你将outDataset进行了多次引用。建议检查一下代码,如果需要强制关闭的话就把Python先关了,然后重新打开就可以了