如何在 Python 循环中删除文件

问题描述

我正在将 tif 文件转换为 csv 文件。这是我的代码。请注意,“copy”命令是一个 Stata 命令,但您可以从我在代码中提供的链接轻松下载 zip 文件,很可能带有请求。

copy "https://biogeo.ucdavis.edu/data/worldclim/v2.1/base/wc2.1_5m_prec.zip" ///
 "wc2.1_5m_prec.zip",replace

unzipfile wc2.1_5m_prec.zip,replace

erase readme.txt

蟒蛇:

#Importing relevant commands

from osgeo import gdal
import pandas as pd,numpy as np,os,glob


#Loops over these to save space

for file in glob.glob("*.tif"):
    ds = gdal.Open(file)

    # TIFF to CSV 
    xyz = gdal.Translate(file+".xyz",ds)
    xyz = None

    df = pd.read_csv(file+".xyz",sep = " ",header = None)
    df.columns = ["x","y","value"]
    df.to_csv(file+".csv",index = False)

    files_in_dir = glob.iglob('*.xyz')
    
    del df

    for _file in files_in_dir:
        print(_file) # just to be sure,you kNow how it is...
        os.remove(_file)
        
    os.remove(file)

end

我想将第一个文件 (wc2.1_5m_prec_01.tif) 转换为 xyz 文件,然后将此 xyz 文件转换csv 文件。但是,在继续下一个文件 (wc2.1_5m_prec_02.tif) 之前,我想删除 原始 tif 文件,因为它已经过时了。我想我会删除它存储的数据框。即使我这样做了,除非我完全离开 Stata 并像这样删除它,否则文件不会删除。我在这里缺少什么吗?请注意,我可以删除 xyz 文件就好了。这里的 tif 文件似乎有问题。

解决方法

答案是 del ds,如上所述,因为这是键控的数据集变量。