Python 将最近的两个文件移动到新目录

Python move two most recent files to new directory

我想以迭代方式将两个最新的文件(每个文件都位于单独的文件夹中)移动到一个新文件夹并生成一个子进程。此子流程完成后,第二个最近的文件将移动到目标文件夹,并进入子流程等。

我有一个功能,可以根据创建日期对文件夹中的文件进行排序,这很有效。但是当我尝试使用 shutil 移动它们时,出现错误 (IOError: [Errno 2] No such file or directory: 'file_name.jpg').

import subprocess
import shutil
import os

#destination folder
dest = '/home/itsme/C'

#sort files in source folders A and B
def sorted_ls(path):
    ctime = lambda f: os.stat(os.path.join(path, f)).st_ctime
    return sorted(os.listdir(path), key=ctime)

ordered_list_A = list(sorted_ls('/home/itsme/A'))
ordered_list_B = list(sorted_ls('/home/itsme/B'))

#move two most recent files to new dest: Problem!
for i in ordered_list_A:
    shutil.move(i, dest)

    for j in ordered_list_B:
        shutil.move(j, dest)


#here comes some code to put the two newest files in 
#subprocess.call which I haven't figured out yet

您没有在移动命令中包括完整的文件路径,只包括文件名,因此您只在当前目录中查找。您需要加入 /home/itsme/* 与实际文件名。您可以在 sorted_ls 命令中执行此操作。