python ln()怎么实现_python 怎么实现linux下自动识别

展开全部

#!/usr/bin/env python2

#-*- coding:utf-8 -*-

import os

from os.path import join,getsize,exists,isdir

def getdirsize(dir):

size=0L

for root,dirs,files in os.walk(dir):

size+=sum([getsize(join(root,name)) for name in files])

return size

def getsizeStr(size):

if 0==size: return '0'

if size/1024.0<1: return '<1KB'

if size/1024.0**2<1:  return '%0.1fKB' % (size/1024.0)

if size/1024.0**3<1:  return '%0.1fMB' % (size/1024.0**2)

return '%0.3fG' % (size/1024.0**3)

if __name__ == '__main__':

dirname=os.getcwd()

while True:

d=raw_input("please input a floder name(default:"+dirname+"):")

if exists(d):

dirname=d

break

elif d=='':

break

print '文件夹32313133353236313431303231363533e58685e5aeb931333361323465不存在,请重新输入'

#列出dirname中的子文件夹

subdirs=[dirs for dirs in os.listdir(dirname) if isdir(join(dirname,dirs))]

#由(子文件夹名,子文件夹大小)组成新的列表,并按size从大到小排序

dirsize=sorted([(d,getdirsize(join(dirname,d))) for d in subdirs],key=lambda s:s[1],reverse=True)

print '-------------------------------------'

print '序号 ,文件夹名称 ,大小:'

#显示所有子文件夹的总大小

print '0 , all sub dirs  ,',getsizeStr(sum([size for d,size in dirsize]))

for d,size in dirsize:

print dirsize.index((d,size))+1, ', "'+d+'" ,', getsizeStr(size)

print '-------------------------------------'

#根据输入的序号,删除对应的文件夹

while True:

a=raw_input('请输入要删除的文件夹序号(0-'+str(len(dirsize))+'):')

if ''==a:

break

elif '0'==a:

b=raw_input('确认删除所有子文件夹?(y/n)')

if 'y'==b.lower():

for dirs in subdirs:

os.popen('rm -rf '+join(dirname,dirs))

print '操作完毕,已删除所有子文件夹'

break

elif a>='1' and a<=str(len(subdirs)):

deldir=dirsize[int(a)-1][0]

b=raw_input('确认删除文件夹"'+deldir+'"?(y)')

if ''==b or 'y'==b.lower():

os.popen('rm -rf '+join(dirname,deldir))

print '操作完毕,已删除文件夹"'+deldir+'",按回车键退出或输入其他序号继续'

else:

print '输入有误,按回车键退出或输入正确序号删除文件'

以上程序,复制粘帖到空白的gedit文件里,保存为cleardir.py

然后在保存的路径里打开终端,输入python cleardir.py

就可以查看当前路径下,所有子文件夹的大小,并删除不需要的文件了。

至于你说的linux程序定时执行,那是linux操作,不属于python的范畴了,自己学习一下linux的基础操作吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值