我想改文件的名字,但是没成功,请各位看看我写的代码到底哪里有问题

我的python装在了d盘,我想将e:\music文件夹中的文件改名,去掉文件名中的[mqms2],源文件如图

我为此写了一个python程序,但是没成功,厚颜在此请大佬耐心帮我看看,最好能详细指出我的错误。

我个人预估的错误是我的正则表达式写的不对,但是我实在是不会改了。

以下是我的程序

#! python3


import os, shutil,re,time

os.chdir('E:\\music')
rule = re.compile(r"(.*?)-(.*?)(\[mqms2\])$,re.VERBOSE")
listname = []
for filelist in os.listdir('.'):
    name = rule.search(filelist)
    listname.append(filelist)
    if name == None:
        continue
    firstname = name.group(1)
    secondname = name.group(2)
    newname = firstname + '-' + secondname
    abp = os.path.abspath('.')
    filelist = os.path.join(abp,filelist)
    newname = os.path.join(abp,newname)
    #print(newname)
    print('renaming "s%" to "s%"...'%(filelist,newname))
    time.sleep(1)                   #我以为是程序闪的太快没看到,加上去看效果的
    #shutil.move(oldname,new)
    os.rename(oldname,new)
print(listname)         #加上去看效果的
print(filelist)         #加上去看效果的
print('done')

 

import os

path = "" #文件夹路径
files = os.listdir(path)
path1 = path + "/"
for file in files:
    old = path1 + file
    new = old.replace("[mqms2]", '')
    os.rename(old, new)

采纳

包括那个中括号也要去掉

replace("[mqms2]",'')

这是最终版本的,一次性改了200多个音乐文件

#! python3


import os

os.chdir('E:\\music')       #只需要改路径

for filelist in os.listdir('.'):
    abp = os.path.abspath('.')
    filelist = os.path.join(abp,filelist)
    newname = filelist.replace('[mqms2]','')   #这是利用了操作字符串
    #print('renaming "s%" to "s%"...'%(filelist,newname))  #不知道为什么调试时这里过不去,我省略掉以后成功
    #time.sleep(1)                   #我以为是程序闪的太快没看到,加上去看效果的
    os.rename(filelist,newname)
print('done')