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 thread 并发且顺序运行示例
Apr 09 Python
python计算N天之后日期的方法
Mar 31 Python
python中redis的安装和使用
Dec 04 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
python实现在IDLE中输入多行的方法
Apr 19 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
Feb 11 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
python热力图实现简单方法
Jan 29 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
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
dojo随手记 gird组件引用
2011/02/24 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
基于Vue实现拖拽效果
2018/04/27 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
Python getopt模块处理命令行选项实例
2014/05/13 Python
Django 使用logging打印日志的实例
2018/04/28 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
用python写PDF转换器的实现
2020/10/29 Python
报社实习生自荐信
2014/01/24 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
股东协议书
2014/04/14 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
女性励志书籍推荐
2019/08/19 职场文书
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js