Python - 如果目录包含以...开头的文件,移动文件

0 投票
2 回答
1573 浏览
提问于 2025-04-16 23:24

我需要写一个Python脚本,这个脚本会查看一个文件夹(里面只放了一个文件),如果这个文件不是今天的,就把它移动到其他地方。为了方便说明,这个文件的名字后面有个后缀,跟今天的日期有关,比如说是myfile_030811.xls

有没有人能给我点建议呢?

2 个回答

0

那用bash怎么样?

可以用下面这个来测试:

for m in `find /some/base/dir -mtime 1`;do echo mv $m /new/directory;done

如果一切看起来都没问题,就把mv前面的"echo"命令去掉。

2

试试这个?这个方法假设在当前目录下有一个叫做“archived”的文件夹。你可能需要根据自己的需求进行一些调整。此外,这个方法还假设你目录下的所有文件名都是以_ddmmyy的格式命名的。如果不是这样,它就无法正常工作。

from stat import *
import os
import time
import shutil
import sys

for file in os.listdir(sys.argv[1]):
  ct = time.localtime()
  datestamp_on_filename = file.split('_')[1].split('.')[0]
  current_date_in_ddmmyy = str(ct.tm_mday) + (('0' + str(ct.tm_mon)) if ct.tm_mon < 10 else str(ct.tm_mon)) + str(ct.tm_year)[2:]
  if datestamp_on_filename != current_date_in_ddmmyy:
    print 'moving ' + file
    shutil.move(sys.argv[1] + "/" + file, 'archived')

撰写回答