从Python中的子目录移动某些文件

时间:2014-06-01 10:47:40

标签: python shutil file-move

我有一个包含大量子文件夹的大文件夹,每个子文件夹包含一个到多个文件。 我想根据文件名移动其中一些文件。我有一个列表,其中包含我要移动的文件的文件名,所以基本上我想检查mither目录中的每个文件,如果它在列表中的名称,如果是的话 - 将其移动到新目录。

我编写了以下脚本,但不幸的是它没有用。有没有人知道如何修复它,或者更好地建议执行所需功能的脚本?

import os
import shutil

curr_fold = "/Users/ruthersh/Alice/Bacterial_seqs/FAA"
dest = "/Users/ruthersh/Alice/Bacterial_seqs/Plasmids"

for (dirname, dirs, files) in os.walk(curr_fold):
    for filename in files:
        if (filename[:9]) in NCS:
            src = os.path.realpath(filename)
            shutil.move(src, dest)

1 个答案:

答案 0 :(得分:1)

来自os.walk上的Python标准库文档:请注意,列表中的名称不包含路径组件。要获取dirpath中文件或目录的完整路径(以top开头),请执行os.path.join(dirpath,name)。所以你应该

src = os.join(dirname, filename)

如果出现问题,请添加一些打印语句以验证src的值,并最终查看真正shutils询问的内容。