如何保留已复制的文件被复制?

时间:2017-02-27 23:29:56

标签: python operating-system shutil

我正在使用以下代码,它只是重新开始,如果我让它将永远运行。我试图让它跳过已存在的文件,并在复制完所有文件后停止。

import os
import shutil

source_dir = r"D:\\Tibi"
target_dir = r"D:\\fileSave/"
extensions = (".mp4", ".CR2")

while True:
    try:
        for directory, _, file_names in os.walk(source_dir):
            for file_name in file_names:
                if file_name.endswith(extensions):
                    source_path = os.path.join(directory, file_name)
                    target_path = os.path.join(target_dir, file_name)
                    print("Moving {} to {} from {}".format(file_name, target_dir, directory))
                    shutil.copy(source_path, target_dir)


except shutil.SameFileError:
    print("{} is already in the folder".format(file_name))

请注意,我将异常放在那里,因为当它在已经存在的文件夹中找到一个文件时会有困难。

1 个答案:

答案 0 :(得分:0)

您可以使用os.listdir()创建目录中所有文件和文件夹的列表,然后使用for迭代浏览文件列表

这样的事情就足够了

import os

files = os.listdir("D:\\Tibi")

for file in files:
    "copy files..."