我正在重命名目录中的所有文件,并使用正则表达式模式检查是否有任何文件具有适当的文件名结构(我在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
答案 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