用Python正则表达式重命名文件

3
我想使用Python重命名1k个文件,它们都是以一些无用的字符和日期格式somejunkDATE.doc命名的。
基本上,我想删除所有无用的字符,只保留日期。我不确定如何匹配目录中的所有文件。
谢谢。

1
如果我们不知道DATE的格式,就无法提供帮助。 - JoshD
1
垃圾文件是否总是相同的,还是每个文件都不同?此外,日期的格式是什么? - kindall
“junk” 还包含各种类型的字符、符号等,长度随机,相当长。 - bernard
1个回答

8
如果您的日期格式在整个文本中都相同,只需使用切片。
>>> file="someJunk20101022.doc"
>>> file[-12:]
'20101022.doc'
>>> import os
>>> os.rename(file, file[-12:]

如果您想检查数字是否为有效日期,请将file[-12:-3]传递给timedatetime模块进行检查。

假设您的文件都在一个目录中(没有子目录)。

import os
import glob
import datetime,time #as required
os.chdir("/mypath")
for files in glob.glob("*.doc"):
    newfilename = files[-12:]
    # here to check date if desired
    try:
       os.rename(files,newfilename)
    except OSError,e:
       print e
    else: print "ok"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接