在Python 3中,如何搜索文件夹中的文件以在特定条件下移至另一个文件夹?

问题描述

我将尝试更清楚地解释一下:我试图弄清楚如何在Python 3.8.5上使用shutil和os模块,以便能够查看文件夹,确定其内容是否已创建以及/或在过去24小时内进行修改...,然后将其移动到另一个文件夹中。

我将尝试链接这里的代码,我在使用Stackoverflow方面还很陌生,所以我深表歉意:

import shutil
import os

shutil.copystat(' \Users\aaron\Desktop\checkFiles\File B.txt',"\Users\aaron\Desktop\needTocopy\"," follow_symlinks=True)

代码不断给我带来无效的语法错误。我不知道自己在做什么错,我什至看过docs.python.org,但是由于我对编码非常陌生,所以对我来说这是希腊语。

解决方法

我不确定,您打算使用shutil.copystat来实现什么。它仅将统计信息和权限复制到路径上。 (如果您的File B.txt是只读的,则needToCopy也将是只读的)

为了找出创建和修改时间,请咨询this great answer

我会像这样检查24小时窗口修改:

import os,time
DIR_PATH = "."
for filename in os.listdir(DIR_PATH):
    if os.path.getmtime(filename) >= (time.time() - 60*60*24): print(filename)

运动部分有shutil.move。所以看起来像这样:

import os,time,shutil
SRC_PATH = "."
TARGET_PATH = "../"
for filename in os.listdir(SRC_PATH):
    if os.path.getmtime(filename) >= (time.time() - 60*60*24): 
        shutil.move(os.path.join(SRC_PATH,filename),TARGET_PATH)