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
命令中执行此操作。
我想以迭代方式将两个最新的文件(每个文件都位于单独的文件夹中)移动到一个新文件夹并生成一个子进程。此子流程完成后,第二个最近的文件将移动到目标文件夹,并进入子流程等。
我有一个功能,可以根据创建日期对文件夹中的文件进行排序,这很有效。但是当我尝试使用 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
命令中执行此操作。