zoukankan      html  css  js  c++  java
  • Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序

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

    #coding=utf-8
    
    '''
    Created on 2014年7月14日
     
    @author: Administrator
    '''
    import os
    import os.path
    rootdir =r'c:python27jiaoben'
     
    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('
    ')
        #print filefullname+':'+linecount+charactercount+'
    '
        b =open (r'c:python27	est.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:Python27scriptKing'):
    print i
     打印结果:
    ('c:\Python27\scriptKing', ['123', 'tt'], ['Add_username.py', 'linestr.py', 'linestrfinal.py', 'mm.py', 'printtest.py', 'pythonxd6xd0cursorxb2xd9xd7xf7xcaxfdxbexddxbfxe2 .txt', 'sum_num.py', 'traverseDir.py', 'username.txt', 'username_indb.py', '__init__.py', 'xd0xc2xbdxa8xcexc4xb1xbexcexc4xb5xb5.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".
  • 相关阅读:
    2019 安装SSDT
    添加删除服务
    POWER BI 报表服务器搭建配置
    解决POWER BI权限控制问题
    asp.net core 发布后显示异常错误信息的方法
    Microsoft SQL Server 查询连接数和关闭连接数
    不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况
    SQL Server在所有表中查找内容(在整个库搜索内容)
    IIS 在.NET MVC网站下创建多个子应用程序,子站访问根目录问题
    博客网址
  • 原文地址:https://www.cnblogs.com/tangdouguard/p/3843785.html
Copyright © 2011-2022 走看看