Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342050
  • 博文数量: 321
  • 博客积分: 3440
  • 博客等级: 中校
  • 技术积分: 2992
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-24 09:08
个人简介

我就在这里

文章分类

全部博文(321)

文章存档

2015年(9)

2014年(84)

2013年(101)

2012年(25)

2011年(29)

2010年(21)

2009年(6)

2008年(23)

2007年(23)

分类: Python/Ruby

2014-09-23 19:19:53

没事看Programming Python,看到有关遍历目录的一节,想起来最近上传网站Version 4的时候想知道目录下有多少个文件,当时不知道有什么相关命令,也懒得上网搜,就落下了。今天趁机用Python实现一个,练练手。

主要用到Python里面用来遍历目录的os.walk()方法(还有一个os.path.walk(),用法不同而已),os.walk会返回一个生成器,所以可以用在for循环,具体的看文档即可。
实现代码如下:文件名为filecount.py

  1. #!/usr/bin/python
  2. import sys,os

  3. def fileCountIn(dir):
  4.     return sum([len(files) for root,dirs,files in os.walk(dir)])

  5. #得益于Python精髓的列表解析,所以一句话就搞定了
  6. #os.walk(dir)会返回一个三元组:(当前目录,子目录列表,文件列表)
  7. #所以len(files)就是获取当前目录下的文件数,然后每个目录下的文件数求和即可

  8. if __name__=='__main__':
  9.     if len(sys.argv)==2:
  10.     dir=sys.argv[1]
  11.     print 'Total files in %s is:%d' %(dir,fileCountIn(dir))
  12.     else:
  13.     print 'usage:filecount.py dirname'

使用:python filecount.py dirname 或者把filecount.py改为可执行chmod +x filecount.py再放到$PATH里面的文件夹里,可以作为日常用的一个小工具。

突然很想知道有没有简单的命令可以实现,放狗搜了一下,搜了一篇精髓的文章,很赞的实现!

ls -lR| grep "^-" | wc -l

阅读(2755) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~