使用Python进行文件整理(一)

  磁盘不进行碎片整理会是一个问题。

  没有垃圾回收机制也是一个问题。

  当下载的各种论文各种pdf在电脑的各个文件夹中乱七八糟的时候,是不是就会无缘无故的心烦意燥起来,明明记得那份论文已经下载下来了,但不知道放那去了,难道再下一份?或者这下载的已经不是第二份了。不擅长于文件管理,系统的文件管理还不够智能,文件管理就成了一个头疼的问题。

  现在云炒得很热,云存储,云操作系统,只要一个Web浏览器就可以了。现在的网速还不是很快,把文件放在云端还不那么靠谱,但是我觉得把文件用Web界面来管理还是很不错的。Google一直在搞Chrome OS,专门搞了个浏览器操作系统,我觉得很浪费资源。它直接把Chrome加强一下,可以管理本地文件,可以运行APP,不就是很好的浏览器操作系统么?安装在Windows或者Linxu上,不需要专门买个Chrome本。

  在Web界面面上管理文件,首先图片是很好搞定的,不管什么格式,浏览器都可以支持的,还可以有各种相册,各种相框,各种展示方式,不像windows一样,还得搞个预览,还大图标,小图标。音乐也很好搞定,对吧。高清电影可能会有点问题,用浏览器播放高清电影可能效果不会太好,但可以使用本地应用,其他播放器啊,又不是一定要浏览器来播放,我只是希望用浏览器来管理。论文,pdf,这一类如果能像IEEE上,论文作者,摘要信息,显示出来,自己也可以分类管理,岂不是很好?用浏览器可以给论文添加文件信息,分类标签等,windows的资源管理器可以吗?越想越觉得资源管理器矬。其他的office的东西,虽然不能用浏览器来查看编辑,但是添加标签进行管理还是可以的。

  主要原因或许就是Web信息是结构化的,很容易组织起来,还可以有数据库的支持。比资源管理器好多少倍。

  不多说了,还是看看Python怎么来管理文件和文件夹吧。

  Python的os模块是与系统管理相关的,可以参考http://docs.python.org/library/os.html以及http://www.cnblogs.com/yuxc/archive/2011/08/01/2124012.html

  目前主要是想整理pdf文件,所以程序里面是对pdf文件进行操作。

  代码如下,

import os

pdfviewer = "evince"
trash = "/home/trash"
rec = dict()
trash += "/"

if not os.path.exists(trash):
    os.mkdir(trash)

def checkPDF(dir_name):
    cur_dir_name = os.getcwd()
    L = os.listdir(dir_name)
    os.chdir(dir_name)
    #print L
    for name in L:
        if os.path.isdir(name):
            checkPDF(name)
        elif os.path.isfile(name) and name not in rec:
            fname,fext = os.path.splitext(name)
            if fext==".pdf":
                tname = name
                #文件名中有空格或者特殊符号的时候有些问题
                if " " in tname:
                    tname = tname.replace(" ","\ ")
                if "(" in tname:
                    tname = tname.replace("(","\(")
                if ")" in tname:
                    tname = tname.replace(")","\)")
                cmd = pdfviewer +" " +  tname
                print cmd
                os.system(cmd)
                newname = raw_input("input the name:")
                #如果想删除这个文件,为避免误删,先放在trash文件夹
                if newname=="-1":
                    cmd = "mv" + " " + name + " " + trash
                    os.system(cmd)
                    print cmd
                    #os.remove(name)
                #如果不需要重命名,就输入0
                elif newname!="0":
                    cmd = "mv" + " " + name + " " + newname 
                    #os.system(cmd)
                    print cmd
                    os.name(name,newname)
                    rec[name] = newname
    os.chdir(cur_dir_name)


checkPDF("./")

  后面还需要实现文件移到分类的文件夹,初步想法是根据文件名来确定路径,因为是这样想的,所以先重命名。还需要把文件目录信息转化为网页信息,导入数据库等,遮掩个就更容易查找和管理。

  恩,先这样。

  好像这样还是很矬。。。

posted @ 2012-05-06 22:39  Frandy.CH  阅读(2048)  评论(0编辑  收藏  举报