根据文件名列表和目录列表将文件复制到新位置,但保留目录结构

时间:2019-07-19 13:28:14

标签: python directory operating-system copy shutil

我正在根据文件名列表和目录列表复制文件。

文件名列表

food.txt:

apple.png
kiwi.png
bacon.png
croissant.png

这些png文件位于以下目录中:

dirs.txt:

C:\image\fruit\
C:\image\meat\
C:\image\bread\

例如:apple.png和kiwi.png在C:\ image \ fruit \下,bacon.png在 C:\ image \ meat \等

我写了代码,根据文件名列表文本文件和目录列表文本文件,将文件从其原始位置复制到新位置。

我复制png文件的代码:

import os
from shutil import copy

food_file="C:\\food.txt"

new_folder= "C:\\newfolder_for_food\\"

dirs = [line.rstrip('\n') for line in open("C:\dirs.txt")]

with open(food_file) as foodNames:
    food_list = fileNames.read().split('\n')
    for i in food_list:
        for f in dirs:
            file_path = os.path.join(f, i)
            if os.path.isfile(file_path):                    
                copy(file_path, new_folder)
                print("Copying, Please Standby...")
print("Executed!")

但是,这会将所有png放在C:\ newfolder_for_food \

我希望apple.png和kiwi.png在C:\ newfolder_for_food \ image \ fruit \下,bacon.png在C:\ newfolder_for_food \ image \ meat \下,等等。但是我不确定该怎么做它。有人可以帮忙修改我的代码吗?

谢谢!

Poppel

0 个答案:

没有答案