首页 > 解决方案 > 循环不适用于移动文件脚本

问题描述

我对 Python 很陌生,我不明白为什么这段代码不做任何事情就崩溃了。它基本上将文件从一个文件夹移动到另一个文件夹,并带有消息和延迟,依此类推。

import shutil
import os
import time
    
source_dir = 'C:/Users/Kip/Desktop/tarace'
target_dir = 'C:/Users/Kip/Desktop/tamere'
    
file_names = os.listdir(source_dir)

while True:
    for file_name in file_names:
    shutil.move(os.path.join(source_dir, file_name), target_dir)
    print("OK")
    time.sleep(2)

我做错什么了?

标签: python

解决方案


这应该可行,但不要忘记它将覆盖相同的命名文件,如果您不希望这样做,则必须在移动之前进行检查。

import shutil
import os
import time
    
source_dir = 'C:/Users/Kip/Desktop/tarace'
target_dir = 'C:/Users/Kip/Desktop/tamere'
    
while True:
    file_names = os.listdir(source_dir)
    if(file_names):
        print("files found moving..")
        for file_name in file_names:
            old_path = os.path.join(source_dir, file_name)
            new_path = os.path.join(target_dir, file_name)
            shutil.move(old_path, new_path)
            print("file {0} -> moved to {1}".format(old_path, new_path))
    time.sleep(2)


推荐阅读