Python之练习Demo

遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果,代码如下:

#coding:GBK
import os;

def SortList(item):
    return item[1];

def ReadSize(fileName):
    return float(os.path.getsize(fileName));

def WriteAll(path):
    l = []
    loger = open("test.log","w");
    writer = open("path.txt","w");
    reader = open("path.txt","r");
    size = 0;
    for root,dirs,files in os.walk(path):
        for filesPath in files:
            try:
                fllePath = os.path.join(root,filesPath);
                fileSize = float(ReadSize(fllePath)/1024);
                size += fileSize;
                x = (fllePath,int(fileSize));
                l.append(x);
            except:
                loger.write("读取:"+os.path.join(root,filesPath)+"文件大小失败!\n");
                continue;
    l = sorted(l,key=SortList,reverse=True);
    for item in l:
        strTmp = "";
        if float(item[1]/1024) > 1024:
            strTmp = item[0]+" "+str(int(float(item[1]/1024/1024)))+"GB\n";
        elif item[1] > 1024:
            strTmp = item[0]+" "+str(int(float(item[1]/1024)))+"MB\n";                           
        else:
            strTmp = item[0]+" "+str(item[1])+"KB\n";
                                     
        writer.write(strTmp);
    writer.write("共使用磁盘空间:"+str(float(size/1024))+"MB");
    loger.close();
    writer.close();
    print(reader.read());
    reader.close();

fileName = os.getcwd();
WriteAll(fileName);
raw_input("END...");

 

posted on 2015-03-11 12:06  燕君临  阅读(598)  评论(3编辑  收藏  举报

导航