遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果,代码如下:
#coding:GBKimportos;defSortList(item):returnitem[1];defReadSize(fileName):returnfloat(os.path.getsize(fileName));defWriteAll(path):
l=[]
loger= open("test.log","w");
writer= open("path.txt","w");
reader= open("path.txt","r");
size=0;forroot,dirs,filesinos.walk(path):forfilesPathinfiles: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);foriteminl:
strTmp="";iffloat(item[1]/1024) > 1024:
strTmp= item[0]+""+str(int(float(item[1]/1024/1024)))+"GB\n";elifitem[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...");