如何将文件名最后一个字母改为小写(如果是字母)?

1 投票
2 回答
3271 浏览
提问于 2025-04-17 07:19

我收到了一些数据,但我的软件只能在文件名最后有小写字母的情况下才能理解这些数据。可是,这些数据的文件名最后是大写字母。

我需要先遍历所有的文件夹,检查每个文件名最后是否有字母,然后把它改成小写字母。

我觉得用Python可以做到这一点,但我不知道该怎么做。如果有人能帮帮我就太好了!

谢谢,

Rob

2 个回答

4
import fnmatch
import os

rootPath = '/'
pattern = '*.mp3'

for root, dirs, files in os.walk(rootPath):
    for filename in fnmatch.filter(files, pattern):
        os.rename(filename, filename[:-1] + filename[-1:].lower())

来源: http://rosettacode.org/wiki/Walk_a_directory/Recursively#Python

在Python中重命名文件

4
def listFiles(dir):
    rootdir = dir
    for root, subFolders, files in os.walk(rootdir):
        for file in files:
            yield os.path.join(root,file)
    return


for f in listFiles(r"Your Path"):
    if f[-1].isalpha():
        os.rename(f,f[:-1]+f[-1].lower())
        print "Renamed " + f + "to" + f[:-1]+f[-1].lower()

递归列出所有文件。如果文件名的最后一个字符是字母,就把它改成小写,并重命名这个文件。


根据提问者最新的要求修改程序。

for fname in listFiles(r"Your Path"):
        newName=re.match("(^.*?)([A-Za-z\.]*$)",x)
        newName=''.join([newName[0],newName[1].lower()])
        os.rename(fname,newName)
        print "Renamed " + fname + "to" + newName

撰写回答