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

标签 python python-2.7 module

我是编程新手,对 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)

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

最佳答案

有几件事需要改变。首先,您无法将 before 中的 datetimegetmtime() 返回的 Unix 时间戳进行比较。直接使用它更容易。此外,您实际上需要将(完整)文件名传递给 mins_since_mod() 以便它执行任何操作。

这里有一些应该起作用的东西,更改 mins_since_mod() 的名称以反射(reflect)它做得更好的地方:

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)

关于python - 按创建/修改日期移动文件然后使用 Python 移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41046980/

相关文章:

python - 尝试更改机器人的状态

python - def 函数 python - 帮助我了解语法

python - 使用 python pandas 将一列拆分为多列

unit-testing - Cargo 未在顶级文件中运行测试

c - 以错误的顺序调用内核模块 Init 和 Exit 函数

python - 为什么使用 numpy.save/numpy.load 将 float 组的 numpy 数组保存到 .npy 文件中,数组的顺序会改变有什么原因吗?

c# - IronPython 2.7 可以调用异步 .NET 函数吗?

python - Centos 6 中使用 SCL Python 2.7 的 Ansible 加密警告

python - MySQL:pymysql 或 mysqldb 访问字典游标功能

perl - 您认为哪些模块会成为理想的 Perl 5 默认值?