使用python搜索和移动文件

时间:2015-04-21 06:21:53

标签: python file

我一直在尝试编写一些python代码,以便从.txt文件中获取每一行,并在文件夹及其子文件夹中搜索具有该名称的文件。在此之后,我想将该文件移动到预设的目标文件夹中。

我已经尝试了以下代码,这些代码仅在堆栈溢出时发布,但它似乎无法正常工作,我无法找出问题。任何帮助都将受到高度赞赏:

import os
import shutil

def main():
    destination = '/Users/jorjis/Desktop/new'

    with open('/Users/jorjis/Desktop/articles.txt', 'r') as lines:
        filenames_to_copy = set(line.rstrip() for line in lines)

        for root, _, filenames in os.walk('/Users/jorjis/Desktop/folder/'):
            for filename in filenames:
                if filename in filenames_to_copy:
                    shutil.copy(os.path.join(root, filename), destination)

1 个答案:

答案 0 :(得分:0)

没有任何调试输出(你现在已经获得)我只能猜到os.walk的一个常见缺陷:filenames中返回的文件名就是这样,文件名没有任何路径。如果您的文件包含带路径的文件名,则它们永远不会匹配。请改用:

if os.path.join(root, filename) in filenames_to_copy:
    shutil.copy(os.path.join(root, filename), destination)