Python學(xué)習(xí):用Python對(duì)文件夾內(nèi)的所有文件批量重命名

當(dāng)前支持在單個(gè)文件夾下重命名,并提前備份原文件杠巡,過(guò)濾子文件夾,對(duì)于原名和新名相同的文件雇寇,不作修改

代碼:

import os
import shutil
import datetime

def backup_files(src_path):
    filenames = os.listdir(src_path)
    for filename in filenames:
        old_name = os.path.join(src_path, filename)
        if os.path.isdir(old_name):
            continue
        shutil.copy(old_name, backup_path)

def batch_rename(src_path,date):
    filenames = os.listdir(src_path)
    same_name = []
    count = 0
    for filename in filenames:
        old_name = os.path.join(src_path, filename)
        if os.path.isdir(old_name):
            continue
        count += 1
        change_name = date + '_%04d' % count + '.' + filename.split('.')[1]
        new_name = os.path.join(src_path, change_name)
        if change_name in filenames:
            same_name.append(change_name)
            continue
        os.rename(old_name, new_name)
    print('\n一共' + str(count) + '個(gè)文件,' + '修改了' + str(int(count) - len(same_name)) + '個(gè)文件的名字')
    if len(same_name) > 0:
        print('其中有' + str(len(same_name)) + '個(gè)文件的原名與新名相同,不作修改')

if __name__ == '__main__':
    date = datetime.datetime.now().strftime('%m%d')
    src_path = r'C:\Users\1\Desktop\2'
    backup_path = src_path + '/' + 'backup/'
    if not os.path.exists(backup_path):
        os.makedirs(backup_path)
    backup_files(src_path)
    batch_rename(src_path,date)

筆記:

1.需要用到Python庫(kù)的os氢拥,shutildatetime

2.定義backup_files()函數(shù)用于在重命名之前備份原文件

3.os.listdir()列出文件夾內(nèi)所有文件锨侯,包括子文件夾嫩海,由于并不需要重命名子文件夾,因此用下面代碼過(guò)濾掉子文件夾囚痴,os.path.isdir()判斷是否為文件夾叁怪,如果是,則continue跳過(guò)深滚,代碼如下:

if os.path.isdir(old_name):
   continue

4.shutil.copy()將原文件復(fù)制到另一個(gè)路徑下奕谭,傳入兩個(gè)參數(shù),第一個(gè)是需要復(fù)制的文件(包含路徑)痴荐,第二個(gè)是目標(biāo)文件夾路徑

5.定義batch_rename()函數(shù)用于批量重命名

6.循環(huán)遍歷文件血柳,獲取舊的文件名old_name,同樣需要過(guò)濾文件夾

7.設(shè)定新文件名的格式change_name蹬昌,可隨意設(shè)置混驰,這里以“當(dāng)天日期+第n個(gè)文件+原后綴”為名,其中filename.split('.')[1]將原文件名以.為分隔符將名字和后綴分開(kāi),得到一個(gè)列表栖榨,取列表第1個(gè)元素昆汹,即后綴

8.為避免原名與新名重復(fù)而導(dǎo)致重命名后覆蓋原文件,用if判斷語(yǔ)句跳過(guò)同名文件婴栽,并將同名的文件名添加到same_name列表中满粗,代碼如下:

if change_name in filenames:
    same_name.append(change_name)
    continue

9.用os.rename()方法對(duì)文件重命名,傳入兩個(gè)參數(shù)愚争,第一個(gè)原文件名(包含路徑)映皆,第二個(gè)新文件名(包含路徑)

10.用datetime獲取當(dāng)前日期和時(shí)間,datetime.datetime.now()獲取當(dāng)前時(shí)間轰枝,年月日+時(shí)分秒捅彻,strftime()用于格式化時(shí)間,可指定獲取時(shí)間的格式鞍陨,例如只輸出年份步淹,或者只輸出月+日

#這里輸出當(dāng)天的月+日
date = datetime.datetime.now().strftime('%m%d')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诚撵,隨后出現(xiàn)的幾起案子缭裆,更是在濱河造成了極大的恐慌,老刑警劉巖寿烟,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澈驼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡筛武,警方通過(guò)查閱死者的電腦和手機(jī)缝其,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)徘六,“玉大人氏淑,你說(shuō)我怎么就攤上這事∷敦” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵缭贡,是天一觀的道長(zhǎng)炉擅。 經(jīng)常有香客問(wèn)我,道長(zhǎng)阳惹,這世上最難降的妖魔是什么谍失? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮莹汤,結(jié)果婚禮上快鱼,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好抹竹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布线罕。 她就那樣靜靜地躺著,像睡著了一般窃判。 火紅的嫁衣襯著肌膚如雪钞楼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,785評(píng)論 1 290
  • 那天袄琳,我揣著相機(jī)與錄音询件,去河邊找鬼。 笑死唆樊,一個(gè)胖子當(dāng)著我的面吹牛宛琅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逗旁,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼嘿辟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了痢艺?” 一聲冷哼從身側(cè)響起仓洼,我...
    開(kāi)封第一講書(shū)人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎堤舒,沒(méi)想到半個(gè)月后色建,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舌缤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年箕戳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片国撵。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陵吸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出介牙,到底是詐尸還是另有隱情壮虫,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布环础,位于F島的核電站囚似,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏线得。R本人自食惡果不足惜饶唤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贯钩。 院中可真熱鬧募狂,春花似錦办素、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至粱哼,卻和暖如春季二,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背揭措。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工胯舷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绊含。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓桑嘶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親躬充。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逃顶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容