0
我正在使用下面的代碼,它只是重新開始,如果我讓它永遠運行。我試圖讓它跳過已存在的文件,並在所有文件被複制時停止。如何保留已複製的文件不被複制?
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))
注意,我把例外,在那裏,因爲當它發現已經在那裏的文件夾中文件,將限定點。
當然它永遠運行。你有一個'while True'循環,它永遠不會中斷... –
所以,如果我拿出True語句。它完成後會打破循環?但是,如何避免複製已經存在的文件呢? –
當你的'os.walk'迭代器耗盡時它會停止。 –