使用 python 重命名文件 - 正则表达式

Posted

技术标签:

【中文标题】使用 python 重命名文件 - 正则表达式【英文标题】:rename files with python - regex 【发布时间】:2011-04-28 08:28:04 【问题描述】:

我想用 python 重命名 1k 个文件。它们的格式都是 somejunkDATE.doc

基本上,我想删除所有垃圾,只留下日期。我不确定如何为目录中的所有文件匹配这个。

谢谢

【问题讨论】:

如果我们对DATE 的格式一无所知,我们将无能为力。 垃圾总是一样的,还是每个文件都不一样?另外,日期是什么格式的? “垃圾”还包含各种类型的字符、符号等,长度随机,相当冗长 【参考方案1】:

如果您的日期格式始终相同,只需使用切片

>>> 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"

【讨论】:

以上是关于使用 python 重命名文件 - 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式批量重命名 OS X 终端中的文件

使用正则表达式重命名文件 - Linux

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

在linux中使用正则表达式重命名文件

使用正则表达式重命名命令不起作用

在 bash 中使用正则表达式复制和重命名多个文件