使用 Python 根据日期范围复制 tiff 图像

Copy the tiff images based on date range using Python

我正在编写一个 python 脚本来根据选定的日期范围复制 tiff 图像,即 02-03-2018: 03-04-2019 等等,我的输入数据名称格式是 Mask_ndvi_NDVI_20160424.tif、Mask_ndvi_NDVI_20160504等。我有代码,但需要更改,如有任何帮助,我们将不胜感激

import shutil
import os

source = r'D:\Corrected'
dest1 = r'D:18'
dest2 = r'D:19'
dest2 = r'D:20'
dest2 = r'D:21'


files = os.listdir(source)

for f in files:
    if (f.startswith[20-04-2017:20-04-2018]:
        shutil.move(f, dest1)
    elif (f.startswith[20-04-2018:20-04-2019]
        shutil.move(f, dest2)

如果您的文件没有那种格式的日期,您为什么要查找它们?如果日期不在开头,为什么要使用 .startswith? 4 月 20 日在这里有什么重要意义?

您要将这些按年份分类到目录中吗?这很简单:

import shutil
import os

source = r'D:\Corrected'
dest1 = r'D:18'
dest2 = r'D:19'
dest2 = r'D:20'
dest2 = r'D:21'
#0123456789.123456789.123456
#Mask_ndvi_NDVI_20160424.tif

files = os.listdir(source)

for f in files:
    year = f[15:19]
    shutil.move( f, f"D:/{year}" )

如果您真的想要这样的范围:

for f in files:
    xdate = f[15:23]
    if '20170420' <= xdate < '20180420':
        shutil.move( f, dest1 )
    elif '20180420' <= xdate < '20190420':
        shutil.move( f, dest2 )
    ...etc...

如果您不喜欢硬编码的列号,请删除例外并在下划线处拆分字符串:

for f in files:
    xdate = f[:-4].split('_')[-1]
    ...same...