• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序 - ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序

2014-07-14 23:47  糖兜guard  阅读(957)  评论(0编辑  收藏  举报

编写了一个遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序,先把程序贴出来。

#coding=utf-8

\'\'\'
Created on 2014年7月14日
 
@author: Administrator
\'\'\'
import os
import os.path
rootdir =r\'c:\python27\jiaoben\'
 
filefullnames=[]
def traverse(rootdir,filefullnames):
    for parent,dirnames,filenames in os.walk(rootdir):
        for dirname in dirnames: #case1
            print \'parent is :\'+parent
            print \'dirname is:\'+dirname
        for filename in filenames: #case2
            print \'parent is:\'+parent
            print \'filename is:\'+filename
            print \'the full name of the file is:\'+os.path.join(parent,filename)
            filefullnames.append(os.path.join(parent,filename))
def linestr(filefullname,linecount=0,charactercount=0):
    a= open(filefullname,\'r\')
    k=a.read()
    charactercount=len(k)
    linecount =k.count(\'\n\')
    #print filefullname+\':\'+linecount+charactercount+\'\n\'
    b =open (r\'c:\python27\test.txt\',\'w+\')
    b.write(\'%s %s %s\' %(filefullname,linecount,charactercount))
    b.close()
    a.close()
traverse(rootdir,filefullnames)
for filefullname in filefullnames:
    linestr(filefullname)
 

 

 

需要注意的地方:
1.使用 os.walk .这个方法返回的是一个三元tupple(dirpath, dirnames, filenames),
其中第一个为起始路径,
第二个为起始路径下的文件夹,
第三个是起始路径下的文件.
dirpath是一个string,代表目录的路径,
dirnames是一个list,包含了dirpath下所有子目录的名字,
filenames是一个list,包含了非目录文件的名字.这些名字不包含路径信息,如果需要得到全路径,需要使用 os.path.join(dirpath, name).
例如:
for i in os.walk(r\'c:\Python27\scriptKing\'):
print i

 

 打印结果:
(\'c:\\Python27\\scriptKing\', [\'123\', \'tt\'], [\'Add_username.py\', \'linestr.py\', \'linestrfinal.py\', \'mm.py\', \'printtest.py\', \'python\xd6\xd0cursor\xb2\xd9\xd7\xf7\xca\xfd\xbe\xdd\xbf\xe2 .txt\', \'sum_num.py\', \'traverseDir.py\', \'username.txt\', \'username_indb.py\', \'__init__.py\', \'\xd0\xc2\xbd\xa8\xce\xc4\xb1\xbe\xce\xc4\xb5\xb5.txt\'])
(\'c:\\Python27\\scriptKing\\123\', [], [])
(\'c:\\Python27\\scriptKing\\tt\', [\'ttt\'], [\'count_linestr.py\', \'hello.txt\'])
(\'c:\\Python27\\scriptKing\\tt\\ttt\', [], [\'kitty.txt\'])
2.os.path.join(parent,filename) 是把几个变量合到一块
 * case1 演示了如何遍历所有目录.
 * case2 演示了如何遍历所有文件.
 * os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java".

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
零基础入门微信小程序开发 (2020 版)发布时间:2022-07-18
下一篇:
WordPress版微信小程序2.1.8版发布 - xjb发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap