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

本文实例讲述了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程序设计有所帮助。

时间: 2015-05-18

Python递归遍历列表及输出的实现方法

本文实例讲述了Python递归遍历列表及输出的实现方法.分享给大家供大家参考.具体实现方法如下: def dp(s): if isinstance(s,(int,str)): print(s) else: for item in s: dp(item) l=['jack',('tom',23),'rose',(14,55,67)] dp(l) 运行结果如下: jack tom 23 rose 14 55 67 希望本文所述对大家的Python程序设计有所帮助.

Python通过递归遍历出集合中所有元素的方法

本文实例讲述了Python通过递归遍历出集合中所有元素的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: '''''通过递归遍历出集合中的所有元素 Created on 2013-9-29 @author: L.Eric '''  def print_List(list_nums):      for each_item in list_nums :           if isinstance(each_item,list):              print_Lis

Python利用递归和walk()遍历目录文件的方法示例

前言 经常需要检查一个"目录或文件夹"内部有没有我们想要的文件或者文件夹,就需要我们循环迭代出所有文件和子文件夹,Python中遍历指定目录下所有的文件和文件夹,包含多级目录,有两种方法,一种是通过递归思想去遍历,另一种是os模块的walk()函数下面话不多说,就来一起看看详细的介绍: 列出目录结构 一.递归方法 #coding:utf-8 import os allfile=[] def getallfile(path): allfilelist=os.listdir(path) f

python目录操作之python遍历文件夹后将结果存储为xml

Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在运行时修改参数即可. Python操作文件和文件夹使用的是os库,下面的代码中主要用到了几个函数: os.listdir:列出目录下的文件和文件夹os.path.join:拼接得到一个文件/文件夹的全路径os.path.isfile:判断是否是文件os.path.splitext:从名称中取出一个子

Python遍历目录的4种方法实例介绍

1.os.popen运行shell列表命令 复制代码 代码如下: def traverseDirByShell(path):     for f in os.popen('ls ' + path):         print f.strip() 2.利用glob模块 glob.glob(path)返回带目录的文件名.通配符和shell相似.path不能包含shell变量. 复制代码 代码如下: def traverseDirByGlob(path):     path = os.path.ex

Python3遍历目录树实现方法

本文实例讲述了Python3遍历目录树的方法.分享给大家供大家参考.具体实现方法如下: import os, fnmatch # 检查一个目录,后者某个包含子目录的目录树,并根据某种模式迭代所有文件 # patterns如:*.html,若大小写敏感可写*.[Hh][Tt][Mm][Ll] # single_level 为True表示只检查第一层 # yield_folders 表示是否显示子目录,为False只遍历子目录中的文件, # 但不返回字母名 def all_files(root, p

Python遍历目录并批量更换文件名和目录名的方法

本文实例讲述了Python遍历目录并批量更换文件名和目录名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2014-03-07 #summary: 深度遍历指定目录,并将子目录和文件名改为小写 #注意,此程序只针对windows,windows下文件(夹)名不区分大小写 import os import os.path import shutil #读入指定目录并转换为绝对路径 rootdir = raw_input('ro

Python遍历目录中的所有文件的方法

os.walk生成器 os.walk(PATH), PATH是个文件夹路径,当然可以用.或者../这样啦. 返回的是个三元元组为元素的列表, 每个元素代表了一个文件夹下的内容.第一个就是当前文件夹下内容. 返回的三元元组代表(该工作文件夹, 该文件夹下的文件夹的列表, 该文件夹下文件的列表). 所以, 获得所有子文件夹, 就是(d代表这三元元组): os.path.join(d[0],d[1]); 获得所有子文件, 就是: os.path.join(d[0],d[2]); 以下例子使用了两套循环

Python实现递归遍历文件夹并删除文件

思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹名称不等于".svn",则递归上面的方法 Python的实现 代码 import os import shutil import os.path import stat rootdir="F:\\work\\Test" for parent,dirnames,filen

python遍历目录的方法小结

本文实例总结了python遍历目录的方法.分享给大家供大家参考,具体如下: 方法一使用递归: """ def WalkDir( dir, dir_callback = None, file_callback = None ): for item in os.listdir( dir ): print item; fullpath = dir + os.sep + item if os.path.isdir( fullpath ): WalkDir( fullpath, dir

python遍历数组的方法小结

本文实例总结了python遍历数组的方法.分享给大家供大家参考.具体分析如下: 下面介绍两种遍历数组的方法,一种是直接通过for in 遍历数组,另外一种是通过rang函数先获得数组长度,在根据索引遍历数组 第一种,最常用的,通过for in遍历数组 colours = ["red","green","blue"] for colour in colours: print colour # red # green # blue 下面的方法可以先获

Python实现遍历目录的方法【测试可用】

本文实例讲述了Python实现遍历目录的方法.分享给大家供大家参考,具体如下: # *-* coding=gb2312 *-* import os.path import shutil def traveltree(curPath,count): if not os.path.exists(curPath): return if os.path.isfile(curPath): fileName =os.path.basename(curPath) print '\t' *count+ '├─'

使用 Python 遍历目录树的方法

假设有这样一个任务,希望对某个文件夹(包括所有子文件夹与文件)中的所有文件进行处理.这就需要遍历整理目录树, 处理遇到的每个文件. import os ''' 遍历目录树 ''' for folder_name,sub_folders,filenames in os.walk('F:\\dicts'): print('当前文件夹:'+folder_name) for sub_folder in sub_folders: print('所包含的子文件夹:'+sub_folder) for file

Python遍历目录下文件、读取、千万条数据合并详情

目录 一.使用Python进行文件和文件夹的判断 二.使用Python完整的获取所有文件及文件夹并读取相应的文件 三.使用Python合并数据 append的使用 一.使用Python进行文件和文件夹的判断 递归 :主要目的就是遍历文件夹和文件 对文件夹和文件进行属性判断 首先对文件夹进行遍历,看文件夹里有什么样的文件,读取出文件夹中的所有文件 import os path= "./data" #路径 files = os.listdir(path) #os.listdir() 方法用

GO语言实现列出目录和遍历目录的方法

本文实例讲述了GO语言实现列出目录和遍历目录的方法.分享给大家供大家参考.具体如下: GO语言获取目录列表用 ioutil.ReadDir(),遍历目录用 filepath.Walk(),使用方法课参考本文示例. 具体示例代码如下: 复制代码 代码如下: package main import (  "fmt"  "io/ioutil"  "os"  "path/filepath"  "strings" )

node.js遍历目录的方法示例

本文介绍了node.js遍历目录的方法示例,分享给大家,也给自己留个笔记,具体如下 同步遍历 const fs = require('fs'); const path=require('path'); function travel(dir,callback){ fs.readdirSync(dir).forEach((file)=>{ var pathname=path.join(dir,file) if(fs.statSync(pathname).isDirectory()){ travel

python 遍历目录(包括子目录)下所有文件的实例

如下所示: def list_all_files(rootdir): import os _files = [] list = os.listdir(rootdir) #列出文件夹下所有的目录与文件 for i in range(0,len(list)): path = os.path.join(rootdir,list[i]) if os.path.isdir(path): _files.extend(list_all_files(path)) if os.path.isfile(path):

Java文件操作之按行读取文件和遍历目录的方法

按行读取文件 package test; import java.io.*; import java.util.*; public class ReadTest { public static List<String> first_list; public static List<String> second_list; public ReadTest() { first_list = new LinkedList<>(); second_list = new Link