编写了一个遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和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".

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

  1. Java遍历一个目录下的所有文件

    Java遍历一个目录下的所有文件   Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其他流类不同的是,流类关心的是文件的内容,而File类关心的是磁盘上文件的存 ...

  2. python遍历一个目录,输出所有文件名

    python遍历一个目录,输出所有文件名 python os模块 os import os  def GetFileList(dir, fileList):  newDir = dir  if os. ...

  3. Python读取一个目录下的所有文件

    #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ...

  4. python 读取一个目录下的所有目录和文件

    #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ...

  5. python 删除一个目录下的所有文件

    一个目录下有文件,文件夹,文件夹里又有文件.文件夹....用python脚本,实现,递归删除一个目录下的所有文件: 目录结构如下: 其中我们要删除所有文件 代码实现如下: import os CUR_ ...

  6. python 检索一个目录下所有的txt文件,并把文件改为.log

    检索一个目录及子目录下所有的txt文件,并把txt文件后缀改为log: import os f_path = r'C:\Users\PycharmProjects\mystudy\Testfolder ...

  7. linux c++ 遍历一个目录下的文件名 (包括子目录的文件名)

    最近写代码有一个要遍历目录下的每一个文件并取得这个文件的绝对路径的需求, 我们知道linux c++中有system命令所以我在代码中 先生成了一个log,然后去读log文件的每一行文件名,然后给存储 ...

  8. python 遍历, 获取目录下所有文件名和文件夹的方法-----os.walk(), os.listdir

    http://www.runoob.com/python/os-walk.html https://www.cnblogs.com/dreamer-fish/p/3820625.html 转载于:ht ...

  9. C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)

    //遍历一个目录下所有的文件列表,代码实例 DirectoryInfo dir = new DirectoryInfo(folderName);var list = GetAll(dir); /// ...

随机推荐

  1. 用VSCode写Vue要用到的配置

    [本文出自天外归云的博客园] 文件-首选项-设置-打开settings.json-用户设置区域填写: { "workbench.colorTheme": "Monokai ...

  2. [C++]“error C2712: 无法在要求对象展开的函数中使用__try”解决方案

    https://blog.csdn.net/shiqw5696/article/details/80664749 前段时间写了一篇关于C++异常捕获及异常处理的文章:c++异常捕获及异常处理try-t ...

  3. 【交换机】交换机RLDP(环路检测&链路检测)功能介绍及配置说明

    功能简介RLDP 全称是Rapid Link Detection Protocol,是锐捷网络自主开发的一个用于快速检测以太网链路故障的链路协议.一般的以太网链路检测机制都只是利用物理连接的状态,通过 ...

  4. React Native常用组件之ListView

    1. ListView常用属性 ScrollView 相关属性样式全部继承 dataSource ListViewDataSource 设置ListView的数据源 initialListSize n ...

  5. MySQL 下载地址获取

    http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.26-winx64.msi 首先安装 mysql installer 安装器进行安装,之前会让你选 ...

  6. 【C语言】 重拾

    [C语言] 因为以前学过C语言,只不过太长时间不用,已经忘得差不多了… 所以这篇文章的性质是把C语言中一些对于现在的我不是很符合预期的知识点记录一下. ■ HelloWorld程序 HelloWorl ...

  7. 利用TortoiseGit(小乌龟)将项目上传至GitHub网站

    准备 1.拥有一个GitHub账户 2.安装了TortoiseGit(小乌龟) 具体过程 一.在GitHub上建立新的仓库 起好仓库名,填好描述,在Add .gitgnore中选择Java(根据你自己 ...

  8. C# 在while循环中new的对象

    一: 问:那每次循环都会new一个A?那内存不是会满吗?还是说要把这个初始化对象的动作放到循环外面的写法会比较好? while(true) { A a = new A(); ... sleep(100 ...

  9. java的同步方法和同步代码块,对象锁,类锁区别

    /** * @author admin * @date 2018/1/12 9:48 * 作用在同一个实例对象上讨论 * synchronized同步方法的测试 * 两个线程,一个线程调用synchr ...

  10. A real example of vioplot in R (sample data and code attached)

    Basic information Package name: vioplot Package homepage: https://cran.r-project.org/web/packages/vi ...