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中使用HTMLParser解析HTML的教程
Apr 29 Python
在Python的web框架中配置app的教程
Apr 30 Python
详解python中的 is 操作符
Dec 26 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
Django Rest framework解析器和渲染器详解
Jul 25 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
python 多维高斯分布数据生成方式
Dec 09 Python
Python表达式的优先级详解
Feb 18 Python
Python 如何对文件目录操作
Jul 10 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 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 Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python实现购物车购物小程序
2018/04/18 Python
python反编译学习之字节码详解
2019/05/19 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
实例详解Python模块decimal
2019/06/26 Python
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
公司授权委托书范文
2014/09/21 职场文书
交通事故和解协议书
2015/01/27 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
python如何在word中存储本地图片
2021/04/07 Python