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追加元素到列表的方法
Jul 28 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
python Matplotlib数据可视化(1):简单入门
Sep 30 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
只需要这一行代码就能让python计算速度提高十倍
May 24 Python
Django操作cookie的实现
May 26 Python
python利用while求100内的整数和方式
Nov 07 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 pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
jquery 插件学习(五)
2012/08/06 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
Python collections模块实例讲解
2014/04/07 Python
介绍Python中内置的itertools模块
2015/04/29 Python
Django入门使用示例
2017/12/12 Python
Django model反向关联名称的方法
2018/12/15 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
python try...finally...的实现方法
2020/11/25 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
俄罗斯鲜花递送:AMF
2020/04/24 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
自考毕业生自我鉴定
2013/11/04 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
运动会入场式解说词
2014/02/18 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
新闻传播专业求职信
2014/07/22 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
车间安全生产管理制度
2015/08/06 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技