我已經給出了我的軟件無法解釋的數據,除非它最後有一個小寫字母。數據在最後以大寫字母遞送。如果它是一個字母,如何將文件名的最後一個字母改爲小寫?
不知何故,我需要先遞歸循環遍歷所有文件夾,並查找文件名是否以字母結尾,然後將其更改爲小寫。
我認爲Python可以做到這一點,但我不知道如何。任何幫助將是偉大的!
你, 羅布
我已經給出了我的軟件無法解釋的數據,除非它最後有一個小寫字母。數據在最後以大寫字母遞送。如果它是一個字母,如何將文件名的最後一個字母改爲小寫?
不知何故,我需要先遞歸循環遍歷所有文件夾,並查找文件名是否以字母結尾,然後將其更改爲小寫。
我認爲Python可以做到這一點,但我不知道如何。任何幫助將是偉大的!
你, 羅布
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
我猜文件結尾可以用同樣的方法改變嗎?.e.g C0000F.JPG到C0000f.jpg –
檢查我的新增加 – Abhijit
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
'文件名[-1]'而不是'文件名[-1:]',不太令人困惑;) – juliomalegria
如果目標是改變最後一個目標,可能使用'* .mp3'作爲示例模式並不是最好的選擇文件名字母小寫 - 小寫字母'3'仍然是'3',所以代碼基本上什麼都不做。 –
我認爲這個答案的一個很好的補充是添加'if filename [-1] .isalpha():'然後做轉換。可以肯定的是,就是這樣。希望我現在可以刪除它。沒關係... – Vorticity
我已經看到了非常奇怪的錯誤軟件操作,但只能夠對名稱以小寫字母結尾的文件進行操作,肯定可能會進入前十名。 :) –