python文件操作之目录遍历实例分析


Posted in Python onMay 20, 2015

本文实例讲述了python文件操作之目录遍历的方法。分享给大家供大家参考。具体分析如下:

Python的os模块,包含了普遍的操作系统功能,这里主要学习与路径相关的函数:

os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回当前目录('.')
os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0
os.path.abspath(name):获得绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名与扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径

1、os.path方法

通过传入需要遍历的目录,列出目录下的所有文件并统计文件数,os提供的path模块能对目录非常灵活的操作。

import os,sys
def listdir(dir,file):
  file.write(dir + '\n')
  fielnum = 0
  list = os.listdir(dir) #列出目录下的所有文件和目录
  for line in list:
    filepath = os.path.join(dir,line)
    if os.path.isdir(filepath): #如果filepath是目录,则再列出该目录下的所有文件
      myfile.write('  ' + line + '\\'+'\n')
      for li in os.listdir(filepath):
        myfile.write('   '+li + '\n')
        fielnum = fielnum + 1
    elif os.path:  #如果filepath是文件,直接列出文件名
      myfile.write('  '+line + '\n') 
      fielnum = fielnum + 1
  myfile.write('all the file num is '+ str(fielnum))
dir = raw_input('please input the path:')
myfile = open('list.txt','w')

2、os.walk方法

os模块提供的walk方法很强大,能够把给定的目录下的所有目录和文件遍历出来。
方法:os.walk(path),遍历path,返回一个对象,他的每个部分都是一个三元组,('目录x',[目录x下的目录list],目录x下面的文件)

import os
def walk_dir(dir,fileinfo,topdown=True):
  for root, dirs, files in os.walk(dir, topdown):
    for name in files:
      print(os.path.join(name))
      fileinfo.write(os.path.join(root,name) + '\n')
    for name in dirs:
      print(os.path.join(name))
      fileinfo.write(' ' + os.path.join(root,name) + '\n')
dir = raw_input('please input the path:')
fileinfo = open('list.txt','w')
walk_dir(dir,fileinfo)

topdown决定遍历的顺序,如果topdown为True,则先列举top下的目录,然后是目录的目录,依次类推,反之,则先递归列举出最深层的子目录,然后是其兄弟目录,然后子目录。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python合并文本文件示例
Feb 07 Python
python中Genarator函数用法分析
Apr 08 Python
Python中进程和线程的区别详解
Oct 29 Python
对numpy中array和asarray的区别详解
Apr 17 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
Python可迭代对象操作示例
May 07 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
python mysql 字段与关键字冲突的解决方式
Mar 02 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
python线程里哪种模块比较适合
Aug 02 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 #Python
python字典排序实例详解
May 20 #Python
在Python中操作字符串之startswith()方法的使用
May 20 #Python
Python中splitlines()方法的使用简介
May 20 #Python
在Python中用split()方法分割字符串的使用介绍
May 20 #Python
Python编程之多态用法实例详解
May 19 #Python
Python编程之属性和方法实例详解
May 19 #Python
You might like
PHP4与PHP5的时间格式问题
2008/02/17 PHP
php建立Ftp连接的方法
2015/03/07 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
JS module的导出和导入的实现代码
2019/02/25 Javascript
python调用java的Webservice示例
2014/03/10 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Python 画出来六维图
2019/07/26 Python
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
华为慧通笔试题
2016/04/22 面试题
酒店优秀员工事迹材料
2014/06/02 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
校园新闻稿范文
2015/07/18 职场文书
教务处教学工作总结
2015/08/10 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
体育教师研修感悟
2015/11/18 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书