1. 程式人生 > >批量、有順序的更改檔名-python

批量、有順序的更改檔名-python

批量、有順序的更改檔名

開始前的碎念

我還算是python的小白,對於程式的編寫還在努力的學習中,從CSDN各個博文中得到了許多幫助與知識(由衷的感謝),因此自己完成了一小部份的成果後,我決定通過博文紀錄我的學習筆記,也算是對於學習的一種負責,希望藉此方式能夠重整思路,因為有時候會卡在一個點很久,找了中外的許多網站才解決了困惑。所以我會盡量的完整紀錄我的思路與困惑的點在文中,跟我一樣困惑的小夥伴們就能減少迷茫的時間了,快速的走向下一步的科研哈!

問題描述

由於在整理檔案時,需要將檔案依照檔名進行初步的分類,因此,在網上搜尋了很多更改檔名的辦法。但因為自己需要的更名方式是為需要按檔案的年份來命名,並且依次12345…的命名方式(舉例來說:2017-1、2017-2、2017-3等的新名稱),所以利用了一些for loop幫助我實現。

程式碼實現

實現的python套件包是為os,有很多涉及處理檔案儲存、命名、讀取等的行為都會需要os套件(這是基本的粗淺瞭解,以後有更深的體會會再補充說明白的~)

// 導進需要的套件包絕對是第一步
import os
path='儲存的路徑' #這就是欲進行檔名更改的檔案路徑,路徑的斜線是為/,要留意下!
files=os.listdir(path)
print('files') #印出讀取到的檔名稱,用來確認自己是不是真的有讀到

n=0 #設定初始值
for i in files: #因為資料夾裡面的檔案都要重新更換名稱
	oldname=path+files[n] #指出檔案現在的路徑名稱,[n]表示第n個檔案
newname=path+'2017-'+str(n+1)+'.wav' #在本案例中的命名規則為:年份+ - + 次序,最後一個.wav表示該檔案的型別 os.rename(oldname,newname) print(oldname+'>>>'+newname) #印出原名與更名後的新名,可以進一步的確認每個檔案的新舊對應 n=n+1 #當有不止一個檔案的時候,依次對每一個檔案進行上面的流程,直到更換完畢就會結束

os.listdir 傳回資料夾中每個檔案的名稱 os.rename 用來將更改原名到新名

  • 程式碼中提到會按照檔案的排列次序依次重新命名,而其中的排列次序為當前在資料夾中設定的排列次序,舉例來說,假設在資料夾中設定的排列為根據時間排列的,那在這個改名字的過程中,他會按照當前的檔案排序按照順序排下來。
  • 在最後一步的列印新舊名稱的對應可以幫助我們紀錄或瞭解~~(盯著程式碼執行,發現一個一個新舊對應印出來特別療愈2333)~~
  • 我通常會在執行名字更換前,先將原資料夾複製一個,以供日後作參考~~(是個非常怕原始資料遺失的人嗚嗚)~~

思路

Created with Raphaël 2.2.0指向要操作的資料夾讀取檔案`os.listdir(path)`制定命名規則新舊名更換`os.rename(old,new)`列印更換前後的名稱
  • for的下個loop會再從讀取檔案開始

再次的碎念

這是第一篇學習的心得,算是利用python自動化完成重複性工作。我其實是很任勞任怨的,一直都是想通過最原始的方式手動進行更改,在幾個月前的我可能不會想用這個方法幫我批量完成,總想說用最笨的方法有一天我會完成的,但當我擁有的資料量近千的時候,我終於產生找尋一些智慧一點的方式完成的動機了哈哈哈。雖然程式碼看著也沒有多少行,也可能還不夠聰明,但我追求的是用自己能理解的程式碼完成我想做的事,目前這是我能夠說服自己也能完成我要做的事的實現程式碼,總之算是對自己學習的一個紀錄,同時也希望能幫上跟我一樣的入門學習者! 下一篇想要記錄的是頻譜圖的生成~ 待續~