使用Python将列表中的特定文件复制到新目录中

时间:2019-04-09 11:38:04

标签: python python-3.x tkinter copy-paste shutil

使用python将列表中的特定文件复制到新目录的最佳方法是什么?

例如,我有一个文本文件,其中包含类似于以下示例的文件名:

E3004 
D0402 
B9404 
C6089

我想搜索目录,然后将发现存在的文件复制到新目录中,同时列出在新文本文档中找不到的代码。

我是一名完全的python新手,因此非常感谢您的帮助。

这是先前讨论中的一部分代码,被用作解决类似问题的解决方案,但是,我在理解将src,dst和text文档的文件路径确切放置在何处时遇到困难?此外,有没有一种方法可以将未找到的数据保存到单独的文本文档中?

链接到前面的讨论:https://stackoverflow.com/a/51621897/10580480

import os import shutil from tkinter import * from tkinter import filedialog

root = Tk()
 root.withdraw()

filePath = filedialog.askopenfilename()
 folderPath = filedialog.askdirectory()
 destination = filedialog.askdirectory()

filesToFind = []
 with open(filePath, "r") as fh:
    for row in fh:
        filesToFind.append(row.strip())

filename variable itself for filename in os.listdir(folderPath):
    if filename in filesToFind:
        filename = os.path.join(folderPath, filename)
        shutil.copy(filename, destination)
    else:
        print("file does not exist: filename")

谢谢

2 个答案:

答案 0 :(得分:0)

for filename in os.listdir('/home/localDir/INPUT/'):
    if filename.startswith("localFileName"):

答案 1 :(得分:0)

使用glob(请参阅https://docs.python.org/3/library/glob.html),您可以在目录中搜索特定的文件名-我已使用它从git clones目录中查找readme.md文件,例如:

for readmeFile in glob.glob('FULLPATH/clones/*/readme.md'):

所以在您的情况下: 循环浏览包含文件名的文档

for readmeFile in glob.glob('FULLPATH/clones/*/' + filename):