使用python對(duì)文件名進(jìn)行批量修改2020-04-24

1. 問題描述

所需要實(shí)現(xiàn)的修改的種類

修改的方式:指增把沼、刪、更吁伺。

修改的內(nèi)容:包括對(duì)前綴(或后綴)饮睬、特定字段。

2.解決思路

step1:實(shí)現(xiàn)單個(gè)文件名的修改
? 如何增加前/后綴篮奄,如何插入特定字段捆愁;
? 如何刪除前/后綴,如何插入特定字段窟却;
? 如何更換前/后綴昼丑,如何插入特定字段。

step2實(shí)現(xiàn)批量操作

3.尋找所需函數(shù)及方法

根據(jù)1.2確定的解決思路夸赫,尋找相應(yīng)的功能函數(shù)菩帝。

(1)讀取文件名的函數(shù)

os模塊,os.listdir()

(2)文件名修改的函數(shù)

①修改文件名函數(shù):os.rename()
②建立修改規(guī)則的函數(shù):translate()方法進(jìn)行轉(zhuǎn)換茬腿,并須通過str.maketrans()建立轉(zhuǎn)換規(guī)則表呼奢。

(3)批量修改用循環(huán)語句

for循環(huán)

4.相關(guān)函數(shù)用法解析

(1) translate()用法說明

用途:S.translate(transtab) -> str
??將S中的字符按照一定的規(guī)則轉(zhuǎn)換為str。 其中滓彰,轉(zhuǎn)換規(guī)則由轉(zhuǎn)換表transtab來給出控妻。
語法
?S.translate (transtab)
參數(shù)說明
? ?transtab -- 轉(zhuǎn)換規(guī)則表,需要借助maketrans()方法(詳見下一條)揭绑。

(2)str.maketrans()用法說明

用途:返回一個(gè)可用于str.translate()的轉(zhuǎn)換表弓候。
語法
?str.maketrans (arg1[,arg2[,arg3])
參數(shù)說明
?如果只有一個(gè)參數(shù)郎哭,那么它必須是一個(gè)將Unicode序數(shù)(整數(shù))或字符映射到Unicode序數(shù)、字符串或None的字典菇存。字符鍵將被轉(zhuǎn)換為序數(shù)夸研。
?如果有兩個(gè)參數(shù),它們必須是<font color=red>長(zhǎng)度相等</font>的字符串依鸥,在得到的字典中亥至,arg1中的每個(gè)字符將映射到arg2中相同位置的字符。
?如果有第三個(gè)參數(shù)贱迟,arg3必須是一個(gè)字符串姐扮,其字符將在結(jié)果中映射為None,即刪除arg3所指定字體串中的字符衣吠。

(3)示例1:對(duì)給定字符串進(jìn)行修改

#建立轉(zhuǎn)換規(guī)則表
intab = "abc"
outtab = "123"
transtab =  str.maketrans(intab,outtab)
#進(jìn)行轉(zhuǎn)換
sentence = "This is a test string!" 
print(sentence.translate(transtab))

輸出結(jié)果將sentence中的’a‘替換為了’1‘茶敏,如圖

This is 1 test string!

(4)os.rename()用法說明

用途:重命名文件或目錄。
語法
?os.rename(old_fname,new_fname)
參數(shù)說明
??old_fname---原文件名缚俏。
??new_fname---修改后的新文件名惊搏。

(5)示例2:對(duì)指定文件夾中文件加前綴

# 導(dǎo)入os模塊
import os
# 獲取文件路徑
path = 'C:\\myProject\\test'
# 設(shè)置工作路徑
os.chdir(path)
# 讀取文件名
filelist = os.listdir(path)
# 修改文件名
for fname in filelist:
    os.rename(fname, '[pre]'+fname) # 加前綴   

5.總體解決方案

實(shí)現(xiàn)對(duì)任意指定文件夾中的文件,進(jìn)行任意所需要的重命名忧换。

示例3:對(duì)指定文件夾中文件進(jìn)行重命名

# 導(dǎo)入os模塊
import os
# 獲取文件路徑
path = 'C:\\myProject\\test'
# 設(shè)置工作路徑
os.chdir(path)
# 讀取文件名
filelist = os.listdir(path)
# 建立重命名規(guī)則
transtab =  str.maketrans('','','[pre]')  #此規(guī)則為恬惯,刪除文件名中所含有的[pre]
# 修改文件名
for fname in filelist:
    os.rename(fname, fname.translate(transtab)) # 加前綴  

說明
transtab = str.maketrans('','','[pre]')
此規(guī)則為,刪除文件名中所含有的各個(gè)單獨(dú)字符亚茬,更確切的方式應(yīng)當(dāng)使用正則表達(dá)式酪耳。
有關(guān)正則表達(dá)式,且聽下回分解才写。

6.本文運(yùn)行環(huán)境說明

Python 3.6.4

注意:python 2 中 translate()函數(shù)使用方法略有不同葡兑。

7.主要參考資料

1.Python translate()方法https://www.runoob.com/python/att-string-translate.html

2.Python maketrans()方法https://www.runoob.com/python/att-string-maketrans.html

3.批量刪除含特殊符號(hào)的前綴/后綴文件名——python實(shí)現(xiàn)https://blog.csdn.net/weixin_39975436/article/details/88668728

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奖蔓,一起剝皮案震驚了整個(gè)濱河市赞草,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吆鹤,老刑警劉巖厨疙,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疑务,居然都是意外死亡沾凄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門知允,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撒蟀,“玉大人,你說我怎么就攤上這事温鸽”M停” “怎么了手负?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)姑尺。 經(jīng)常有香客問我竟终,道長(zhǎng),這世上最難降的妖魔是什么切蟋? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任统捶,我火速辦了婚禮岔霸,結(jié)果婚禮上蝶念,老公的妹妹穿的比我還像新娘。我一直安慰自己最盅,他們只是感情好驻右,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布迷守。 她就那樣靜靜地躺著,像睡著了一般旺入。 火紅的嫁衣襯著肌膚如雪兑凿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天茵瘾,我揣著相機(jī)與錄音礼华,去河邊找鬼。 笑死拗秘,一個(gè)胖子當(dāng)著我的面吹牛圣絮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雕旨,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扮匠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了凡涩?” 一聲冷哼從身側(cè)響起棒搜,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎活箕,沒想到半個(gè)月后力麸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡育韩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年克蚂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筋讨。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡埃叭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出悉罕,到底是詐尸還是另有隱情赤屋,我是刑警寧澤误墓,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站益缎,受9級(jí)特大地震影響谜慌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜莺奔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一欣范、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧令哟,春花似錦恼琼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至狠半,卻和暖如春噩死,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背神年。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國打工已维, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人已日。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓垛耳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親飘千。 傳聞我的和親對(duì)象是個(gè)殘疾皇子堂鲜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

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

  • 參考:http://blog.csdn.net/wuce_bai/article/details/50827393...
    Babyzpj閱讀 808評(píng)論 0 0
  • 4.7. Text Sequence Type — str Python中的文本數(shù)據(jù)由str對(duì)象或strings處...
    xpf2000閱讀 3,236評(píng)論 0 2
  • 序列 序列是一種有序的集合,就是諸如數(shù)組护奈、鏈表或者對(duì)外呈現(xiàn)類似結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)缔莲,特點(diǎn)就是擁有一串的元素,并且這些元素...
    templark閱讀 309評(píng)論 0 1
  • Python史上最全開發(fā)總結(jié)(轉(zhuǎn)自靜熙老師哈哈哈) 兩本不錯(cuò)的書: 《Python參考手冊(cè)》:對(duì)Python各個(gè)標(biāo)...
    春風(fēng)在抱閱讀 759評(píng)論 1 4
  • 親子閱讀打卡第274天(1月16日)今天晚上給崽崽講了一個(gè)《綠毛獅子》的故事逆济。故事講的是在森林里酌予,住著一頭被稱作大...
    vv167閱讀 1,738評(píng)論 0 0