Python正则表达式模式

时间:2015-06-21 19:19:56

标签: python regex file

我正在重命名目录中的所有文件,并使用正则表达式模式检查是否有任何文件具有适当的文件名结构(我在www.rubular.com上仔细检查了模式,它似乎是正确的)。如果是这样,它会跳过重命名的文件。以下代码重命名该文件,无论它是否具有适当的文件名结构....我没有看到它为什么不跳过该文件。任何有助于确定正则表达式模式不起作用的帮助都将受到赞赏:

# Appropriate file name: P.002-night.jpg; File name to rename: bird.jpg


import os, os.path
import re


def displaymatch(match):
    if match is None:
        return None
    return '<Match: %r, groups=%r>' % (match.group(), match.groups())

sampledir = "c:\\Users\\Name\\Desktop\\New folder"
os.chdir(sampledir)
FileList = os.listdir(os.getcwd())


num = 000

pattern = r"\w.\d{3}\-\w+.(jpg|Jpg|JPG)"


for filename in FileList:
    if displaymatch(re.match(pattern, filename)) != None:
        pass
    else:
        os.rename(filename, "P." + str("{0:0=3d}".format(num)) + "-" + filename)
        num+= 1

1 个答案:

答案 0 :(得分:-1)

pattern = r"\w.\d{3}\-\w+.(jpg|Jpg|JPG)"


for filename in FileList:
    if displaymatch(re.match(pattern, filename)) is None:
        os.rename(filename, "P." + str("{0:0=3d}".format(num)) + "-" + filename)
        num+= 1