循环遍历列表中的文件并移动指定的文件(Python)

时间:2017-09-14 16:11:19

标签: python arrays opencv file-io

我有这个代码,它向我展示了我提供的文件夹中的所有.tif文件。

timestr = datetime.now().strftime('%Y%m%d-%H%M%S%f')    

ex_area_files = []
tif_files = glob.glob('C:\\Users\\Bob\\Desktop\\Folder\\' + str(timestr) + '\\EXTRACTED\\*.tif')
ex_area_files = [tif_files]
print(ex_area_files)

如何将一些指定的(移动到另一个文件夹)?我的意思是,我想移动所有.tif文件,其宽度*高度的结果小于/大于某个值。

我尝试的是循环遍历数组,并在设置了编码后移动文件。所有结果都是一个循环失败,阻塞了所有系统:)

接下来......

image = cv2.imread('image.jpg')
height = np.size(image, 0)
width = np.size(image, 1)

condition = (height*width) > 9600

我怎样才能将ex_area_files(我的.tif数组)设置为cv2可以读取的文件目录?更重要的是,如何一次设置文件?

满足条件的文件(值为320 * 30px的图像)应该移动到另一个目录。程序确定文件可以移动后如何操作?

由于

提示:这是另一段代码之后的下一步:Exclude images of certain dimensions from process (OpenCV, Python) 在这种情况下,请查看ex_area14.png。我想移动一系列这样的文件(但是以.tif格式......)

1 个答案:

答案 0 :(得分:2)

我建议使用shutil来移动文件。移动它们您可以使用shutil.copy() - 我个人使用shutil.copy2()

所以尝试这样的事情:

    import shutil
    import opencv

    for files in ex_area_files:
        if files (PLACE YOUR CONDITION HERE):
            `shutil.copy('PATH_OF_file', 'PATH_OF_WHERE_TO_DROP')

编辑:

所以我个人喜欢os.walk(),这里我循环浏览文件,如果文件以.tif结尾,我会用imread读取文件获取高度和宽度,并检查是否满足该条件。您必须提供要将文件复制到的位置。 (请注意.replace() - imread出于某种原因喜欢像[{1}}而不是/这样的斜杠

\