使用紅淚網提供的音樂轉檔精靈把 CD 轉成 mp3,打算跑步或到圖書館的時候可以戴耳機聽。不過檔名都是「音軌 01」←這種格式,兩片 CD 的內容編號是連貫的,我想把檔名改成連續的數字……所以 CD 2 就用 python 幫忙 rename。
#!/usr/local/bin/python
import re, os
#使用正規表示式來取得符合規範的檔名
rxin = raw_input('enter a regex to search for:\n')
foo = re.compile(rxin)
#CD2 第一首就是第 25 首(承接 CD1),這邊我把它寫死
newname = 26
for fname in os.listdir(os.getcwd()):
#抓取符合正規表示式的檔案名稱
allowed_name = re.compile(rxin).match
if allowed_name(fname):
#把檔名和副檔名切開
c = os.path.splitext(fname)
b = (str(newname) + c[1])
print b
os.rename(fname, b)
newname += 1
把寫好的 .py 檔案放在和 mp3 同一層資料夾下。執行時第一個 input 我給的是「音軌 \d」。然後就會轉好了。只是不知道為什麼,檔名 rename 是有成功啦,但是 print b 沒有印出來,大概是我該吃飯了吧。反正弄好就滿足了,沒有很認真檢查~(是否會挨罵 XD)
程式是 Google 來的,關鍵字是"python rename",原始碼來自這裡。
#!/usr/local/bin/python
import re, os
#使用正規表示式來取得符合規範的檔名
rxin = raw_input('enter a regex to search for:\n')
foo = re.compile(rxin)
#CD2 第一首就是第 25 首(承接 CD1),這邊我把它寫死
newname = 26
for fname in os.listdir(os.getcwd()):
#抓取符合正規表示式的檔案名稱
allowed_name = re.compile(rxin).match
if allowed_name(fname):
#把檔名和副檔名切開
c = os.path.splitext(fname)
b = (str(newname) + c[1])
print b
os.rename(fname, b)
newname += 1
把寫好的 .py 檔案放在和 mp3 同一層資料夾下。執行時第一個 input 我給的是「音軌 \d」。然後就會轉好了。只是不知道為什麼,檔名 rename 是有成功啦,但是 print b 沒有印出來,大概是我該吃飯了吧。反正弄好就滿足了,沒有很認真檢查~(是否會挨罵 XD)
程式是 Google 來的,關鍵字是"python rename",原始碼來自這裡。
文章標籤
全站熱搜

http://aspn.activestate.com/ASPN/Cookbook/Python/
不好意思 請教一個問題, 如果有中文的目錄名稱或中文檔名時 用 os.listdir("/home/shen") 或是用 glob.glob("/home/shen") 中文檔名或目錄名都會變成像:'' 請問這該如何解決呢!
樓上的 willie 說,在互動式介面下會顯示成這樣是正常的,不必 care :) 如果想知道這些字是哪些字的話,把它 print 出來就會正常了。 例如: >> a = '測試' >> a '' >> print a 測試