【Python私活案例】螞蟻老師群里接了個(gè)私活,10分鐘賺了100元,批量重命名文件!
今天在螞蟻學(xué)python的群里面,有同學(xué)提出了這樣一個(gè)需求:

我一看有錢可以賺,立馬來勁兒了,就接下了這一單。同學(xué)給我發(fā)來了具體的需求:“有一個(gè)文件夾folder,里面有5個(gè)文件夾,名稱分別是A、B、C、D、E,這5個(gè)文件夾里面既有文件夾,還有.txt文件,如何重命名這五個(gè)文件夾中最后一層文件夾里面的txt文件(重要說明,只重命名最后一層里面的文件,不是最后一層的不用重命名),命名要求,原文件名字+對(duì)應(yīng)的五個(gè)文件夾名字,如,A中最后一層文件夾的文件名是1.txtx,重命名后是,1_A.txt”
也就是說處理前的文件名是這樣的:

處理后文件名變?yōu)檫@樣:

其中,A是第一層文件夾的名字。
我馬上想起了從帥帥老師那邊學(xué)習(xí)長(zhǎng)度如何用python中的os來處理文件實(shí)現(xiàn)辦公自動(dòng)化的知識(shí),就是下面這一節(jié):

再配合螞蟻學(xué)python基礎(chǔ)課中學(xué)過的對(duì)字符串的操作技巧,比如join函數(shù)、split方法等等,很快我就寫出了以下代碼:
import?os
count?=?0
for?root,?dirs,?files?in?os.walk(".",?topdown=False):
????for?name?in?files:
????????foldernames?=?root.split('\\')
????????if?len(foldernames)?==?5:
????????????src?=?os.path.join(root,?name)
????????????print(src)
????????????foldername?=?foldernames[2]
????????????print(f'修改前:{name}')
????????????parts?=?name.split('_')
????????????new_name?=?parts[0]+'_'+foldername+'_'+parts[1]+'_'+parts[2]
????????????print(f'修改后:{new_name}')
????????????dst?=?os.path.join('./renamedFiles/',?new_name)
????????????print(dst)
????????????count?=?count?+?1
????????????try:
????????????????os.rename(src,dst)
????????????except?Exception?as?e:
????????????????print(e)
????????????????print('rename?file?fail\r\n')
????????????else:
????????????????print(f'rename?file?success\r\n{count}')
當(dāng)然,中間調(diào)試花了一些時(shí)間,因?yàn)槲野l(fā)現(xiàn)有一些文件是重復(fù)的,這個(gè)時(shí)候,就需要好用try-except語句進(jìn)行處理了。運(yùn)行程序之后,只花了0.3S的時(shí)間,就完成了120個(gè)文件的重命名,真的是好快呀。

最后展示一下成果:

也賺到了今天的零花錢:

人生苦短,我用pyhton, 節(jié)省時(shí)間還能賺錢,真的香!
? 代碼參考自:
螞蟻老師的課程《Python處理Excel辦公自動(dòng)化》
掃碼購(gòu)買,加微信ant_learn_python答疑

? 點(diǎn)擊《閱讀原文》也可以到達(dá)課程頁面
