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中使用列表生成式的教程
Apr 27 Python
python中input()与raw_input()的区别分析
Feb 27 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
python pandas dataframe 行列选择,切片操作方法
Apr 10 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
PyTorch预训练的实现
Sep 18 Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 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调整服务器时间的方法
2015/04/03 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
javascript操作css属性
2013/12/30 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
javascript基础知识讲解
2017/01/11 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
python求列表交集的方法汇总
2014/11/10 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
Foreo国际站:Foreo International
2018/10/29 全球购物
入党自我鉴定范文
2013/10/04 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
学校消防安全责任书
2014/07/23 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年销售员工作总结
2014/12/01 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python