python文件遍历的例子

在linux系统下遍历文件不算是新鲜功能,如果给出一个目录,要根据这个目录的结构去做某些操作,这个就要到遍历了,谈到遍历就不能不说递归,因为遍历是递归的典型应用场景,那什么是递归?其实递归就是定义的函数又调用了自己,比如列出指定目录下的所有文件,如果这个目录下除了文件还有目录,就就需要再进入这个子目录里,依次类推直到没有目录了结束,递归比较抽象,我们直接上例子说明:

#!/usr/mport os
 
import os
 
def Rec(path):
  all_files = os.listdir(path)
  for file in all_files:
    pf = os.path.join(path,file)           
    if os.path.isdir(pf):
      Rec(pf)                 
    else:
      print os.path.join(path,pf)
 
Rec('/root/script')

这就是一个简单的列子,例子中如果变量pf是目录,就再调用Rec函数,如果不是就直接打印出目录和文件内容。

如果以上的例子比较难理解,那大家也不用担心,谁让咱用的是python这门大神的语言呢, 因为在python里已经给我们提供了一个os.walk()函数帮我们解决了这个较为烧脑的问题,这个函数接受一个目录,然后返回一个三元组tupple(dirpath, dirnames, filenames),,分别表示:

根路径,根路径下的子目录列表,根路径下的所有文件列表。

所以要遍历一个目录下文件,最后用os.path.join(dirpath, name).就可以得到文件的全路径了,我们来个实际例子,比如我要备份1台机器上的所有conf文件,我们采用os.walk()函数可以这样遍历所有系统的conf文件,然后拷贝到我们指定的目录中去,脚本如下:

import os, shutil, sys
 
if not os.geteuid()==0:
    sys.exit(0)
 
if not os.path.isdir("/backup"):
    os.mkdir("/backup", 384)
 
for root, dirs, files in os.walk('/'):
    for filename in files:
        if ".conf" in filename:
            abspath = os.path.join(root, filename)
            shutil.copy2(abspath, "/backup")

有了这个os.walk()函数可以帮我们很快遍历指定的文件夹内容,所以在实际中非常有用,建议多写几个例子来深入理解它的含义,这篇就到这里,欢迎留言交流。

时间: 2024-10-31 07:05:40

python文件遍历的例子的相关文章

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

  本文实例讲述了python文件操作之目录遍历的方法.分享给大家供大家参考.具体分析如下: Python的os模块,包含了普遍的操作系统功能,这里主要学习与路径相关的函数: os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是一个目录,name不是目录就返回fals

Python中文件遍历的两种方法_python

关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历. 方法一:利用os.walk os.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()会返回一个generater,所以调用的时候一定要放到for循环中. 复制代码 代码如下: import osdef walk_dir(dirname): f

python 文件操作api(文件操作函数)_python

python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r"c:\python") 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir() 判断是否是绝对路

Python实现遍历数据库并获取key的值

  本文给大家分享的是Python实现遍历数据库并获取key的值的方法,主要是使用for循环来实现,有需要的小伙伴可以参考下. 遍历Redis数据库中有以格式为PREFIX_*的按照key-value方式存储的key,并打印其值. 遍历使用SCAN,因为KEYS PREFIX_*可能会造成Redis长时间阻塞. 查询使用pipeline减少交互,提高效率. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 impor

Python文件和目录操作详解_python

一.文件的打开和创建 1.打开 复制代码 代码如下: open(file,mode): >>>fo = open('test.txt', 'r') >>>fo.read() 'hello\n' >>>fo.close() file(file,mode): >>>f = file('test.txt', 'r') >>>f.read() 'hello\n' >>>f.close() mode可取值:

Python文件夹与文件的操作实现代码_python

有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模块, 导入的方法是: import os 一.取得当前目录 s = os.getcwd() # s 中保存的是当前目录(即文件夹) 比如运行abc.py,那么输入该命令就会返回abc所在的文件夹位置. 举个简单例子,我们将abc.py放入A文件夹.并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹.且文件夹的名字根据时间自动生成. import os import time folder =

对象存储架构所解决的文件遍历问题

在处理庞大的数据集合时,你一定不想要耗费大量系统资源来检索所有的文件才查找得到你想要的信息.对象存储,与其特有的识别符,很大程度上简化了这个过程. 在对象存储体系架构的最底层,所有的数据仍以块存储的形式加以存放.对象存储作为块存储的上层,包含了数据(即包含所存储信息详细描述的元数据)以及独有的识别符,将其封装成为特定的对象.由于对象存储的逻辑结构位于块存储之上,它与下层的硬件层无关,于是便可使用任何x86处理器.内存.磁盘驱动器以及固态闪存,而不需要专属硬件来支持特定的对象存储.事实上,绝大多数

Python文件操作,open读写文件,追加文本内容实例_python

1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt') try: all_the_text = file_object.read( ) finally: file_object.close( ) 注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法. 2.读文件读文本文件input

Python 文件操作实现代码_python

open(filename,mode,buffer) 其中第一个参数是要打开的文件的文件名,必选:第二个是打开方式,可选:第三个为缓冲区,可选.默认情况下是以"读"模式打开文件.该函数返回的是流类型对象. mode有如下几种: r:读模式(默认值) w:写模式 a:追加写模式 b:二进制模式 t:文本模式(默认值) +:更新已有硬盘文件(读和写模式) U:通用换行模式(Universal new line mode) 如果到打开的文件不存在或者其他问题,会跑出IOError异常. 常用