使用 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...
我正在编写一个 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...