问题:修要修改一些LOG FILE的名字,那些LOG FILE的文件名格式大概是 log-v0-20091012-daily-1a5019a0.csv 。需要修改红色的日期部分,把这个日期改小一点,例如改到20091001。

首先上程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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),一般可以这样用:

1
2
time_for_utime = (time.time(), time.time())
os.utime(path, time_for_utime)

No related posts.

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

   
© 2011 进化的测试 Suffusion theme by Sayontan Sinha