OS.REMOVE() not being called when deleting raster files

原文标题OS.REMOVE() not being called when deleting raster files

我正在尝试删除所有没有值数据的那些光栅文件(tif格式)(文件中的所有值都是-3.4028235e+38)。但是,我发现os。remove()无法工作,没有文件被删除。打印语句也不起作用。

有人可以告诉我代码有什么问题吗?干杯

from PIL import Image
import os
import numpy

directory = 'E:/data/'
for image in os.listdir(directory):
    indiv = Image.open(directory + image)
    elevMax = numpy.amax(indiv)
    print(directory + image)
    print(str(elevMax))
    if elevMax == -3.4028235e+38:
        print("it had the value")
        os.remove(os.path.join(directory, image))

以下是代码的一些输出:

E:/data/filteredN01E116.tif
1907.05
E:/data/filteredN01E117.tif
-3.4028235e+38
E:/data/filteredN01E118.tif
-3.4028235e+38
E:/data/filteredN01E119.tif
-3.4028235e+38
E:/data/filteredN01E120.tif
1693.56

原文链接:https://stackoverflow.com//questions/71476170/os-remove-not-being-called-when-deleting-raster-files

回复

我来回复
  • Haru Go的头像
    Haru Go 评论

    问题解决了。

    这只是类型的问题。

    if elevMax == numpy.float32(-3.4028235e+38):
            print("it had the value")
            os.remove(os.path.join(directory, image))
    

    这样可行!感谢您的所有评论。

    2年前 0条评论