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

时间:2016-02-02 15:42:49

标签: python python-2.7 move shutil

我想迭代地将两个最近的文件(每个文件都基于不同的文件夹)移动到一个新文件夹并生成一个子进程。完成此子流程后,第二个最新文件将移动到目标文件夹,然后进入子流程等。

我有一个功能可以根据创建日期对文件夹中的文件进行排序,这样可行。但是当我尝试使用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

1 个答案:

答案 0 :(得分:1)

您不会在move命令中包含完整的文件路径,只包含文件的名称,因此您只需查看当前目录。您需要使用实际文件名加入{% set LS_HEAP_SIZE = grains['mem_total'] / 4 %} {% set LS_HEAP_SIZE = LS_HEAP_SIZE | round | int %} 。您可以在/home/itsme/*命令中执行此操作。