编写代码将图片从一个文件夹复制到另一个文件夹,但目标文件夹为空

Wrote code to copy pictures from one folder to another but destination folder is empty

我写了这段代码来搜索一个文本文件,每行都填充了一个数字,然后在一个文件夹中搜索以该数字开头的图像,并将该图片复制到另一个文件夹。但是没有任何内容被复制过来。

import shutil
import os
import glob

File_object = open("IDs.txt",'r')
List =  File_object.readlines()

path = 'C:\Users\name\OneDrive - name\Documents\SearchandCopy'
src_dir = "C:\Users\name\OneDrive - name\Documents\SearchandCopy\Search"
dst_dir = "C:\Users\name\OneDrive - name\Documents\SearchandCopy\Copy"

for i in range(0, len(List), 1):
    for file in os.listdir(path):
        if file.startswith(List[i]):
            shutil.copy(src_dir,dst_dir)

您来电:

shutil.copy(src_dir, dst_dir)

不过,我相信您要复制的是文件,而不是源目录。在这种情况下,将该行替换为:

shutil.copy(file, dst_dir)

当我尝试在文本文件的每一行上添加一个数字时,列表包含 ['1\n', '2\n', '3']

您还需要像这样输入要复制的文件的完整路径

shutil.copy(src_dir + "\" + file, dst_dir)

还需要在 src_dir 中查找文件,我假设

    for file in os.listdir(src_dir): # Instead of path

这里有完整代码(需要改回你的文件路径)

import shutil
import os
import glob

File_object = open("C:\Users\Vinnie\Desktop\test\SearchAndCopy\IDs.txt", 'r')
List = File_object.readlines()
NewList = []
for x in List:
    NewList.append(x.replace('\n', ''))

path = 'C:\Users\Vinnie\Desktop\test\SearchAndCopy'
src_dir = "C:\Users\Vinnie\Desktop\test\SearchAndCopy\Search"
dst_dir = "C:\Users\Vinnie\Desktop\test\SearchAndCopy\Copy"


print(List)
print(NewList)
for i in range(0, len(NewList), 1):
    for file in os.listdir(src_dir):            
        if file.startswith(NewList[i]):               
            shutil.copy(src_dir + "\" + file, dst_dir)