如何将奇数文件从一个文件夹复制到另一个文件夹?

时间:2020-04-06 13:36:25

标签: python computer-vision

我在一个文件夹中有大约1000张图像,这些图像的名称分别为“ image290.jpg,image291.jpg,image292.jpg,...”。

我想将所有带有奇数的图像(例如“ image291.jpg,image293.jpg,image295.jpg,...”)复制到另一个文件夹。

如何用python代码做这些事情?

4 个答案:

答案 0 :(得分:1)

这是我使用shutil库的解决方案:

import os
import shutil
images = os.listdir(your_dirctory_name)
for image_name in images:
    if int(image_name[5:-4]) % 2 == 1:
        shutil.copy(your_dirctory_name + "/" + image_name, your_output_directory_name)

答案 1 :(得分:1)

您可以使用shutil.copyfile移动文件:

from shutil import copyfile
import os
import re

origin = '/you/folder/with/images'
paths = os.listdir(origin)
dst_dir = '/your/destination/dir/path'

for src in paths:
    r = re.search(r'image(\d*)\.jpg', src)

    if r and int(r.group(1)) % 2 != 0:
        copyfile(os.path.join(origin, src), os.path.join(dst_dir, r.group()))

答案 2 :(得分:1)

这是我想出的:

import re

file_names = ["image290.jpg", "image291.jpg", "image292.jpg", "image293.jpg", "image294.jpg", "image295.jpg"]

pattern = re.compile(r"[a-zA-Z]+(\d+)\.[a-zA-Z]+")

for file in file_names:
    if int(re.search(pattern, file).group(1))%2 != 0:
        print(f"copying odd numbered file {file} to blablah/bla")
    else:
        print(f"skipping even numbered file {file}")

输出:

skipping even numbered file image290.jpg
copying odd numbered file image291.jpg to blablah/bla
skipping even numbered file image292.jpg
copying odd numbered file image293.jpg to blablah/bla
skipping even numbered file image294.jpg
copying odd numbered file image295.jpg to blablah/bla

答案 3 :(得分:0)

import os
import re
import shutil

base_dir= os.path.dirname(__file__)#it will fetch the path of folder in which your code file resides
input_directory_name= os.path.join(base_dir+'/all_images/')
output_directory_name= os.path.join(base_dir+'/odd_numbered_images/')
pattern = re.compile(r"[a-zA-Z]+(\d+)\.[a-zA-Z]+")
for file in os.listdir(base_dir+'/all_images/'):

if int(re.search(pattern, file).group(1))%2 != 0:
    shutil.copy(input_directory_name+ file, output_directory_name)
    print(f"copying odd numbered file {file} to "+str(output_directory_name))
else:
    print(f"skipping even numbered file {file}")
相关问题