将文件与列表进行比较并相应地进行复制

时间:2017-05-14 16:24:08

标签: python python-3.x shutil

我有一个脚本,用于比较和排序两个目录中的文件。我目前正在尝试将一个目录中的所有文件与另一个目录中的文件列表进行比较,然后将这些文件复制到"匹配"或"独特的" 。目录

我设法将文件名与列表匹配,然后复制文件,但我无法将该文件复制到目标目录中,同时保留名称。

这就是我所拥有的:

input2_only = [file1.mp3, file2.mp3, etc]

for root, dirs, files in os.walk("input2", topdown=False):
    for filename in files:
        print(filename)
        if filename in input2_only:
            print('yay')
            shutil.copy(os.path.join(root, filename), "outputs")

我认为我可以在shutil系列中改变一些东西以使其发挥作用,但到目前为止我尝试的每一个调整都会导致心痛。为了清楚起见,在这个片段中,我希望它将与列表进行比较的文件复制到名为" outputs"的目录中。一旦我能做到这一点,我有理由相信我可以填补其余的逻辑。

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,想出来并发布,以防其他人有帮助。关键是在调用shutil之前创建输出目标。正确的代码段是:

    PrintWriter writer;
    try{

        writer = new PrintWriter(this.file_route);
        String line = "";

        for(Event event : events_list){

           line =  event.getName() +
                    "," + event.getDescription() + "\n";

           writer.write(linea);

        }

    }
    catch(FileNotFoundException ex){
        ex.printStackTrace();
    }

}

“out”行使shutil的目标输出文件名“outputs”