Python - 如果目录包含以...开头的文件,移动文件
我需要写一个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')