按创建/修改日期移动文件,然后使用 Python 移动

New*_*Dev 6 python module python-2.7

我对编程很陌生,对于Python更是如此。所以请原谅我的无知。我正在尝试为自己编写一个脚本,该脚本将移动过去 24 小时内修改过的文件。到目前为止我已经想出了这个:

import datetime
import os
import shutil


src = "C:\Users\Student\Desktop\FolderA"
dst = "C:\Users\Student\Desktop\FolderB"


now = dt.datetime.now()
before = now - dt.timedelta(hours=24)

def mins_since_mod(fname):
    return (os.path.getmtime(fname))


for fname in os.listdir(src):
    if mins_since_mod > before:
        src_fname = os.path.join(src,fname)
        os.path.join(dst,fname)
        shutil.move(src_fname, dst)
Run Code Online (Sandbox Code Playgroud)

我知道我已经接近解决方案,但我似乎不知道如何让它发挥作用。我在社区上环顾四周,但无法找到解决我的问题的方法。感谢您提供任何线索或建议。

Ilu*_*tar 5

有一些事情需要改变。首先,您无法将datetimeinbefore与返回的 Unix 时间戳进行比较getmtime()。直接使用它更容易。另外,您实际上需要传递(完整)文件名mins_since_mod()才能执行任何操作。

这是应该有效的方法,更改名称mins_since_mod()以反映它做得更好:

import time
import os
import shutil

SECONDS_IN_DAY = 24 * 60 * 60

src = "C:\Users\Student\Desktop\FolderA"
dst = "C:\Users\Student\Desktop\FolderB"

now = time.time()
before = now - SECONDS_IN_DAY

def last_mod_time(fname):
    return os.path.getmtime(fname)

for fname in os.listdir(src):
    src_fname = os.path.join(src, fname)
    if last_mod_time(src_fname) > before:
        dst_fname = os.path.join(dst, fname)
        shutil.move(src_fname, dst_fname)
Run Code Online (Sandbox Code Playgroud)