pythonshutil-复制文件+;仅适用于特定文件的文件树

pythonshutil-复制文件+;仅适用于特定文件的文件树,python,shutil,Python,Shutil,我正在尝试使用shutil从列表中复制文件,并将它们放置在另一个目录中的同一文件夹结构中: import os import shutil src = "/sourcedoc/1/" dest = "/destdoc/" files_to_find = [] with open('filelist.txt') as fh: for row in fh: files_to_find.append(row.strip()) for root, dirs, files i

我正在尝试使用shutil从列表中复制文件,并将它们放置在另一个目录中的同一文件夹结构中:

import os
import shutil

src = "/sourcedoc/1/"
dest = "/destdoc/"

files_to_find = []
with open('filelist.txt') as fh:
    for row in fh:
        files_to_find.append(row.strip())

for root, dirs, files in os.walk(src):
    for _file in files:
        if _file in files_to_find:
            print('Found file in: ' + str(root))
            os.makedirs(os.path.dirname(dest), exist_ok = True)
            shutil.copy(os.path.abspath(root + '/' + _file), dest + _file)
我要创建与包含要复制到新目标中的文件的文件夹同名的文件夹,然后将文件复制到其中。
最终的目标是使用类似“/destdoc/1/”的结构,并从列表中复制文件。但是,我得到的是目标目录中没有文件夹结构的所有文件。似乎使用shutil.copytree会复制文件夹中的所有文件。

这是因为根据您的代码,您使用的是文件本身,而不是文件夹。如果你严格按照你所做的方式处理文件,而忽略它们所在的文件夹,你就不能期望得到任何我看到的不是文件的东西。要复制目录,我必须将文件中的for_文件替换为dirs中的for dir,但是如何将文件复制到新创建的文件夹中呢?