如何重命名最后一个字母而不是以python结尾的文件

时间:2011-11-30 17:16:27

标签: python rename

  

可能重复:
  How to change last letter of filename to lowercase if it is a letter?

这篇文章是我上一篇文章的后续文章。 以下答案来自Abhijit。

它会检查文件名的最后一个字符,如果是字符,则将其更改为小写。我需要调整它,以便它检查最后一个字符的第5个。例如,fooB.PNG> foob​​.PNG

罗布

import fnmatch
import os

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"N:\test1"):
    if f[-5].isalpha():
        os.rename(f,f[:-5]+f[-5].lower())
        print "Renamed " + f + "to" + f[:-5]+f[-1].lower()

1 个答案:

答案 0 :(得分:0)

做这样的事情

>>> import os
>>> for root, subFolders, files in os.walk('/tmp'):
...   for f in files:
...     if len(f) < 5: continue
...     newf = f[:-5]+f[-5].lower()+f[-4:]
...     print "changing",f,"to",newf
... 

但看起来你想要扩展名前的字符而不是5个字符?在这种情况下,为什么不只是从文件名中拆分扩展名并在降低最后一个字符后重新加入