zoukankan      html  css  js  c++  java
  • [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):
            pass
        else:
            if os.path.isdir("./"+k):
                pass
            else:
                print k
                m=k[k.find("RV")+2:k.find("RV")+7]
                rvnum=""                      
                for l in m:
                    if l.isdigit():
                        rvnum+=l
                index=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
    ")
        else:
             fp.write("RV."+str(k)+",待收藏
    ")
    
       

    +


    达到预想中的效果了

    3.后记


    整理音乐这种工作,就编程层面来讲可能并无太高的技术含量。我只是随便写写,练练手,找找对Python的感觉。

    但是如何合理的分类,组织,展现音乐数据依然是一件值得思考的事情。

    希望能在未来结合数据库技术完成一个比较完善的音乐管理系统。

  • 相关阅读:
    Linux环境下使用eclipse开发C++动态链接库程序
    例解 autoconf 和 automake 生成 Makefile 文件
    linux下编译boost
    在linux下如何编译C++程序
    windows和linux套接字中的select机制浅析
    看到关于socket非阻塞模式设置方式记录一下。
    MySQL批量执行sql文件
    Sqlcmd使用详解
    批量执行SQL文件
    SpringCloud微服务之跨服务调用后端接口
  • 原文地址:https://www.cnblogs.com/cn-lhc/p/6033408.html
Copyright © 2011-2022 走看看