[python]os库与shutil库与操作系统的交互-整理硬盘中Vivaldi的作品
Vivaldi是本人最喜愛的作曲家,他結構完整,旋律優美的協奏曲真是令人著迷。
關于os庫的使用 http://www.cnblogs.com/rollenholt/archive/2012/04/23/2466179.html
關于shutil庫的使用http://www.cnblogs.com/xiaowuyi/archive/2012/03/08/2385808.html
1.分析
在網易云上下載到的Vivaldi作品,命名大概是這樣
Anne-Sophie Mutter - Antonio Vivaldi: The Four Seasons, Concerto No. 1 in E ("Spring") RV 269 (Op. 8 No. 1): 2. Largo e pianissimo sempre
或者是
Christophe Coin - RV 403 Concerto D-dur (2)
再或者
Claudio Scimone,維瓦爾第 - Flute Concerto in F Major, Op. 10, No. 1RV 433 "La tempesta di mare": III. Presto
??? 因為是來自不同的專輯,所以命名包含的信息也不盡相同.想要實現絕對全面的分類整理難度真的是很大..但是95%的Vivaldi作品名中都會有RV編號,據這個index來分類還是可以實現的。
所以為了實現最簡單的整理,要做的就是
- 建立名為”RVXXX“的文件夾
- 將帶標號的作品移入相應文件夾
- 在一個文本文檔中記錄該作品的收藏狀態
實現起來沒什么難度,處理字符串時注意一下就好了
?
2.編碼與調試
#-*- coding:utf-8 –*- import os import shutil #os.mkdir("Test") os.chdir("../Vivaldi") fp = open("Flag.csv","w") RV_Flag=[] for i in range(0,999):RV_Flag.append(0) List=os.listdir(os.getcwd()) for k in List:if(k.find("RV")==-1):passelse:if os.path.isdir("./"+k):passelse:print km=k[k.find("RV")+2:k.find("RV")+7]rvnum="" for l in m:if l.isdigit():rvnum+=lindex=int(rvnum)if os.path.exists("./RV"+str(rvnum)):shutil.move(r""+k,r"./RV"+str(rvnum))else:os.mkdir("RV"+str(rvnum))shutil.move(r""+k,r"./RV"+str(rvnum))RV_Flag[index]=1 for k in range(0,999):if RV_Flag[k]==1:fp.write("RV."+str(k)+",Done\n")else:fp.write("RV."+str(k)+",待收藏\n")+
達到預想中的效果了
3.后記
整理音樂這種工作,就編程層面來講可能并無太高的技術含量。我只是隨便寫寫,練練手,找找對Python的感覺。
但是如何合理的分類,組織,展現音樂數據依然是一件值得思考的事情。
希望能在未來結合數據庫技術完成一個比較完善的音樂管理系統。
?
轉載于:https://www.cnblogs.com/cn-lhc/p/6033408.html
總結
以上是生活随笔為你收集整理的[python]os库与shutil库与操作系统的交互-整理硬盘中Vivaldi的作品的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现扫描文件下所有目录
- 下一篇: python命令行操作:Click包