[英]how to neglect case sensitivity in os.rename replace
我有一個腳本,用我指定的新文件名替換文件名,但是,現在它區分大小寫(如果文件名 = DM,但我輸入 Dm,它不會被替換)
我已經在 os.rename 中嘗試了 filename.lower(),但它似乎不起作用。 雖然沒有錯誤,但該文件名保持不變。
import os
old = 'dm'
new = 'datamining'
path = os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
os.rename ( path+'\\'+ filename.lower() , path+'\\'+ filename.replace(old , new) )
您的實際文件名不一定是小寫的,但您將小寫字符串'dm'
傳遞給replace
方法。 它在文件名中找不到小寫'dm'
,因此返回相同的文件名,導致os.rename
什么也不做。
您可以在調用replace
方法之前將文件名小寫:
os.rename( path+'\\'+ filename , path+'\\'+ filename.lower().replace(old , new) )
但是,這將強制新文件名完全小寫。 如果要保留文件名的 rest 的大小寫,可以使用帶有IGNORECASE
標志的re.sub
代替:
import re
...
os.rename( path+'\\'+ filename , path+'\\'+ re.sub(old, new, filename, flags=re.IGNORECASE))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.