当前位置:  编程技术>python

python中遍历文件的3个方法

    来源: 互联网  发布时间:2014-10-11

    本文导语:  今天写一个在windows下批量修改文件名的python脚本,用到文件的遍历。用python进行文件遍历有多种方法,这里列举并说明一下。 os.path.walk() 这是一个传统的用法。 walk(root,callable,args)方法有三个参数:要遍历的目录,回调函数,...

今天写一个在windows下批量修改文件名的python脚本,用到文件的遍历。用python进行文件遍历有多种方法,这里列举并说明一下。

os.path.walk()

这是一个传统的用法。

walk(root,callable,args)方法有三个参数:要遍历的目录,回调函数,回调函数的参数(元组形式)。

调用的过程是遍历目录下的文件或目录,每遍历一个目录,调用回调函数,并把args作为参数传递给回调函数。

回调函数定义时也有三个参数,比如示例中的func中的三个参数,分别为walk传来的参数、目录的路径、目录下的文件列表(只有文件名,不是完整路径)。请看示例:

代码如下:

import os
s = os.sep #根据unix或win,s为或/
root = "d:" + s + "ll" + s #要遍历的目录

def func(args,dire,fis): #回调函数的定义
    for f in fis:
        fname = os.path.splitext(f)  #分割文件名为名字和扩展名的二元组
        new = fname[0] + 'b' + fname[1]  #改名字
        os.rename(os.path.join(dire,f),os.path.join(dire,new)) #重命名

os.path.walk(root,func,()) #遍历

这种方法在使用时有个问题,不能递归遍历下一层(这点我还不确定,欢迎指正)。

python的高级版本中加入了os.walk(),比这个好用。

os.walk()

原型为:os.walk(top, topdown=True, onerror=None, followlinks=False)

我们一般只使用第一个参数。(topdown指明遍历的顺序)
该方法对于每个目录返回一个三元组,(dirpath, dirnames, filenames)。第一个是路径,第二个是路径下面的目录,第三个是路径下面的非目录(对于windows来说也就是文件)。请看示例:

代码如下:

import os
s = os.sep
root = "d:" + s + "ll" + s 

for rt, dirs, files in os.walk(root):
    for f in files:
        fname = os.path.splitext(f)
        new = fname[0] + 'b' + fname[1]
        os.rename(os.path.join(rt,f),os.path.join(rt,new))

这种方式可以递归遍历所有的文件。

listdir

可以使用os模块下的几个方法组合起来进行遍历。请看示例:

代码如下:

import os
s = os.sep
root = "d:" + s + "ll" + s

for i in os.listdir(root):
    if os.path.isfile(os.path.join(root,i)):
        print i

这里需要注意的是,其中的i是目录或文件名,不是完整的路径,在使用时要结合os.path.join()方法还原完整路径。

遍历搞定之后,文件名的修改可以使用正则表达式做一些高级的处理。

另外,还可以使用os.system(cmd)来调用shell里面的相关命令对文件进行处理,很好很强大。


    
 
 

您可能感兴趣的文章:

  • python内置映射类型(mapping type):dict哈希字典遍历方式及其它用法举例
  • Python字符遍历的艺术
  • python遍历文件夹并删除特定格式文件的示例
  • python中使用enumerate函数遍历元素实例
  • python 字典(dict)遍历的四种方法性能测试报告
  • python使用os模块的os.walk遍历文件夹示例
  • Python中文件遍历的两种方法
  • Python中使用item()方法遍历字典的例子
  • python目录操作之python遍历文件夹后将结果存储为xml
  • python实现dict版图遍历示例
  • python二叉树遍历的实现方法
  • Python enumerate遍历数组示例应用
  • python数据结构之二叉树的遍历实例
  • python两种遍历字典(dict)的方法比较
  • python异常信息堆栈输出到日志文件
  • 使用python删除nginx缓存文件示例(python文件操作)
  • python读文件,写文件操作以及目录操作
  • python读取csv文件示例(python操作csv)
  • 用python代码做configure文件
  • Python引用(import)文件夹下的py文件的方法
  • python文件读写并使用mysql批量插入示例分享(python操作mysql)
  • python安装问题,rpm命令显是缺少库文件
  • 简单文件操作python 修改文件指定行的方法
  • python代码制作configure文件示例
  • Python文件操作类操作实例详解
  • python使用循环实现批量创建文件夹示例
  • python读写文件操作示例程序
  • python 改文件名等问题
  • python 获取文件列表(或是目录例表)
  • Python批量修改文件后缀的方法
  • Python生成pdf文件的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python获取网页编码的方法及示例代码
  • 使用setup.py安装python包和卸载python包的方法
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 如何运行Python程序的方法
  • python对XML的解析方法(SAX,DOM,ElementTree)介绍
  • Python3实现生成随机密码的方法
  • python list 合并连接字符串的方法
  • Python开发的单词频率统计工具wordsworth使用方法
  • Python实现多行注释的另类方法
  • Python判断变量是否已经定义的方法
  • python中定义结构体的方法
  • python字符串排序方法
  • 用Python脚本生成Android SALT扰码的方法
  • Python 条件判断的缩写方法
  • netbeans7安装python插件的方法图解
  • Python和php通信乱码问题解决方法
  • Python中无限元素列表的实现方法
  • win7 下搭建sublime的python开发环境的配置方法
  • SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
  • 在Python安装MySQL支持模块的方法
  • python中文乱码的解决方法
  • 如何运行Python程序的方法 iis7站长之家
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • Python中实现json字符串和dict类型的互转
  • Python开发者社区整站源码 Pythoner
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python基础教程之python消息摘要算法使用示例
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • 新手该如何学python怎么学好python?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3