由两种简单的遍历指定目录下文件的方法来看os模块中的一些方法

来源:互联网 发布:js计算时间差 编辑:程序博客网 时间:2024/05/18 02:22

在python中 可以编写如下两种方法的任意一种来遍历某个目录(文件夹)下的全部文件

程序代码:

import os

#方法一 遇到文件打印出文件名 遇到目录调用函数本身进行迭代

def walk(dirname):
    for name in os.listdir(dirname):
        path = os.path.join(dirname, name)
        if os.path.isfile(path):
            print path
        else:
            walk(path)

#方法二 利用os模块中已经存在的walk方法

def walk2(dirname):
    for root, dirs, files in os.walk(dirname):
        for filename in files:
            print os.path.join(root, filename)

#函数测试 可以分别得出当前目录下的所有文件(包括子目录)

walk('.')
walk2('.')

使用到的os模块的一些方法:

os.listdir() 列出当前目录下面的所有文件与目录,以相对路径来表示

(定位文件的字符串被称为路径相对路径从当前目录开始,绝对路径从文件系统的顶层目录开始)

os.path.join(目录名, 文件名) 接受一个目录和一个文件名称,将其拼接成一个完整路径

os.path.isfile(目录或文件名) 判断是否为文件

os.walk(指定目录) 遍历指定目录以及该目录下的所有子目录,每次遍历一个目录会返回一个三元组,分别是当前遍历的目录名,该目录下的所有子目录组成的list,该目录下所有文件组成的list

(要察看os.walk()所有遍历过的目录,只需如方法二一样进行for循环遍历)

OS模块其他一些方法:

os.getcwd() 获取当前目录

os.path.isdir(目录或文件名) 判断是否为目录

os.path.exists(目录或文件名) 判断目录或者文件是否存在

0 0