问题:修要修改一些LOG FILE的名字,那些LOG FILE的文件名格式大概是 log-v0-20091012-daily-1a5019a0.csv 。需要修改红色的日期部分,把这个日期改小一点,例如改到20091001。
首先上程序:
import time, os, string, sys ONE_DAY = (24 * 60 * 60) if __name__ == "__main__": if len(sys.argv)<2: print "argv error, useage: python " + __file__ + " foldername int" sys.exit() if len(sys.argv)==2: intrday = 1 else: intrday = int(sys.argv[2]) folder = sys.argv[1] localtime = time.localtime() todate = str(localtime[0]) + str(localtime[1]) + str(localtime[2]) targettime = time.localtime(time.time() - ONE_DAY*intrday) newdate = str(targettime[0]) + str(targettime[1]) + str(targettime[2]) print folder for file in os.listdir(folder): newname = string.join(string.split(file, todate), newdate) os.rename(folder+file, folder+newname)
用的时候就是 $ python rename.py ./ 4 ;这个命令会把当前目录下面符合这个条件的文件名中的日期往前改4天,运行完了以后的文件名就是:log-v0-20091008-daily-1a5019a0.csv
如果还需要把文件的访问时间和修改时间也一并修改的话,那么只需要用os.utime(path, times)这个函数就好了,times是元组(Tuple),一般可以这样用:
time_for_utime = (time.time(), time.time()) os.utime(path, time_for_utime)