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)
我知道我已经接近解决方案,但我似乎不知道如何让它发挥作用。我在社区上环顾四周,但无法找到解决我的问题的方法。感谢您提供任何线索或建议。
有一些事情需要改变。首先,您无法将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)
| 归档时间: |
|
| 查看次数: |
6653 次 |
| 最近记录: |