在订单程序中应用的os.walk()

2024-09-28 21:46:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我的特定情况下使用walk.os,因为现在是小时,所以我订购了一些图像。这些图像位于文件夹“D:/TR/Eumetsat_IR_photos/Prueba”中,我的想法是从“D:/TR/Eumetsat_IR_photos”中包含的不同文件夹中获取所有图像,并将它们排序到两个特定的文件夹中,即白天和夜间。我不知道如何调整程序以使用此os.walk()

这并不重要,但图像的时间会出现在所有图像名称的位置37和39(因此您可以正确理解它)

谢谢

from os import listdir, path, mkdir
import shutil


directorio_origen = "D:/TR/Eumetsat_IR_photos/Prueba"
directorio_destino_dia = "D:/TR/IR_Photos/Daytime"
directorio_destino_noche = "D:/TR/IR_Photos/Nighttime"

def get_hour(file_name):
    return file_name[37:39]

for fn in list0:
    hora = int(get_hour(fn))
    file_directorio= directorio_origen+"/"+fn
    if 6 < hora < 19: 
        new_directorio= directorio_destino_dia
    else:
        new_directorio= directorio_destino_noche
        
    try:
        if not path.exists(new_directorio):
            mkdir(new_directorio)
        shutil.copy(file_directorio, new_directorio)
    except OSError:
        print("el archivo %s no se ha ordenado" % fn)

Tags: 图像import文件夹newirostrfile
1条回答
网友
1楼 · 发布于 2024-09-28 21:46:46

对代码稍作修改后,类似这样的操作即可完成:

import shutil
import os

directorio_origen = "D:/TR/Eumetsat_IR_photos/Prueba"
directorio_destino_dia = "D:/TR/IR_Photos/Daytime"
directorio_destino_noche = "D:/TR/IR_Photos/Nighttime"

def get_hour(file_name):
    return file_name[37:39]

for root, dirs, files in os.walk(directorio_origen, topdown=False):
    for fn in files:
        path_to_file = os.path.join(root, fn)
        hora = int(get_hour(fn))
        new_directorio = ''
        if 6 < hora < 19: 
            new_directorio= directorio_destino_dia
        else:
            new_directorio= directorio_destino_noche
        try:
            if not os.path.exists(new_directorio):
                os.mkdir(new_directorio)
            shutil.copy(path_to_file, new_directorio)
        except OSError:
            print("el archivo %s no se ha ordenado" % fn)

相关问题 更多 >