【问题标题】:How to rename last letter but not the file ending in python [duplicate]如何重命名最后一个字母而不是以python结尾的文件[重复]
【发布时间】:2012-01-09 22:25:38
【问题描述】:

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

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

它检查文件名的最后一个字符,如果它是一个字符,则将其更改为小写。我需要对其进行调整,以便它检查倒数第五个字符。例如 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()

【问题讨论】:

  • 请清楚并正确格式化问题。
  • 我真的很沮丧。你问了similar question,复制了我的答案并在这里发布了一个新问题。既不在乎选择可接受的答案,也不在乎回顾我对您的评论的回复。
  • 这已经在 OP 的最后一个问题中得到回答,在他复制此代码的同一答案中。
  • 正如其他人所说:由同一用户重复,不归功于先前答案的作者

标签: python rename


【解决方案1】:

做这样的事情

>>> 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 个字符?在那种情况下,为什么不直接从文件名中拆分扩展名并在降低最后一个字符后重新加入它

【讨论】:

  • 我尝试了最后一个例子,但没有得到积极的结果。对不起!
  • 好吧好吧!!我只用过这个论坛几次,必须学习规则!请不要私信我,我没有侮辱任何人的意思
  • @RobertBuckley,规则是通用的。您不会在不将其归属于他人的情况下获取他人的代码。这适用于本网站和其他所有网站。
猜你喜欢
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 2016-10-05
  • 2019-07-28
  • 1970-01-01
  • 2017-10-28
相关资源
最近更新 更多