如何在python中根据txt文件复制多个文件

如何在python中根据txt文件复制多个文件,python,copy,shutil,os.walk,Python,Copy,Shutil,Os.walk,请帮帮我。 我正在尝试根据列表将文件从一个目录移动到另一个目录。 文本文件(mp3text.txt)如下所示: p008-002031903 p008-002031906 p008-002031910 每行包含一个没有路径的文件名。另一个目录(e:\p008)包含数百个文件(p008-002031910.spx)。 我试过很多次了。它可以运行一部分,但无法复制任何内容。非常感谢 import os import shutil destination = 'e:\\result' with o

请帮帮我。 我正在尝试根据列表将文件从一个目录移动到另一个目录。 文本文件(mp3text.txt)如下所示: p008-002031903 p008-002031906 p008-002031910 每行包含一个没有路径的文件名。另一个目录(e:\p008)包含数百个文件(p008-002031910.spx)。 我试过很多次了。它可以运行一部分,但无法复制任何内容。非常感谢

import os
import shutil

destination = 'e:\\result'

with open('c:\\mp3text.txt', 'r',encoding= 'utf-8') as lines:
    filenames_to_copy = set(line.rstrip() for line in lines)
for root, _,filenames in os.walk('e:\\p008'):
    for filename in filenames:
        if filename in filenames_to_copy:
            shutil.copy(os.path.join(root, filename), destination)

我终于明白了!
剧本没问题。
问题是源目录中的文件扩展名。
在我删除文件扩展名之后。

它起作用了

我也试过Linux。出现错误:(find:缺少'-name')的参数。#/bin/bash cat./mp3text.txt |而read line do echo$line find./p008-name$line | xargs-i cp-rf{}./result/doneThanks。我试过你的方法。但它也不起作用。我不知道为什么。
<mp3text.txt xargs -I filename find ./p008 -name filename | xargs -I filepath cp -rf filepath ./result/