簡體   English   中英

如何忽略 os.rename 替換中的大小寫敏感性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM