这里有新鲜出炉的 Python 入门,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了 Python 实现 Linux 中简单 du 命令, 需要的朋友可以参考下
实现代码如下:
说明:现在代码已实现 du 命令的 -s 统计功能,统计与系统 du 命令稍有差别,比如用 ls -ld /root 结果为 4096, 而 du 计算出来是 1040,用当前 python 计算出来也是 4096。另外暂时还没有实现类似于自动根据大小显示为人性化的单位,后续补上
- #!/usr/bin/python
- #*-*coding:utf8*-*
- import sys
- import os
- from optparse import OptionParser
- #使用选项帮助信息可以使用中文
- reload(sys)
- sys.setdefaultencoding("utf-8")
- #定义选项和帮助信息
- usage = sys.argv[0] + " [选项]... [对象]..."
- parser = OptionParser(usage)
- parser.add_option("-s",
- dest="sum",
- action="store_true",
- default=False,
- help="统计指定对象的的大小总和")
- parser.add_option("-a",
- dest="autoDisplay",
- action="store_true",
- default=False,
- help="根据大小自动显示 k,KB,MB,GB 等单位")
- options, args = parser.parse_args()
- #判断文件或目录是否存在
- def noFile(i):
- if not os.path.exists(i):
- sys.stderr.write(i + "\tis not exists\n")
- exit(1)
- sum = 0
- for i in args:
- noFile(i)
- if os.path.isfile(i):
- size = os.path.getsize(i)
- sum += size
- print("%d\t%s" %(size, i))
- if os.path.isdir(i):
- dir = os.walk(i)
- for x, y, z in dir:
- size = os.path.getsize(x) #对目录本身进行大小统计,和du统计结果有点不太一样
- sum += size
- if options.sum:
- pass
- else:
- print("%d\t%s" %(size, x))
- for f in z:
- size = os.path.getsize(os.path.join(x, f)) #对目录里面文件进行大小统计
- sum += size
- if options.sum:
- pass
- else:
- print("%d\t%s" %(size, os.path.join(x, f)))
- """如果加上-s选项,这里就输入总的大小"""
- if options.sum:
- print("%d\t%s" %(sum, i))
程序执行结果如下:
以上所述是小编给大家介绍的 Python 实现 Linux 中的 du 命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 PHPERZ 网站的支持!
来源: http://www.phperz.com/article/17/0702/336678.html