经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结。Python 中扫描目录有两种方法:os.listdir 和 os.walk。

一、os.listdir 方法

os.listdir() 方法用于返回指定的目录下包含的文件或子目录的名字的列表。这个列表以字母顺序。其得到的是仅当前路径下的文件名,不包括子目录中的文件,如果需要得到所有文件需要递归。 它也不包括 '.' 和 '..' 即使它在目录中。

语法格式如下:

os.listdir(path)

实例代码

def list_dir(file_dir):

'''

通过 listdir 得到的是仅当前路径下的文件名,不包括子目录中的文件,如果需要得到所有文件需要递归

'''

print'\n\n<><><><><><> listdir <><><><><><>'

print "current dir : {0}".format(file_dir)

dir_list = os.listdir(file_dir)

for cur_file in dir_list:

# 获取文件的绝对路径

path = os.path.join(file_dir, cur_file)

if os.path.isfile(path): # 判断是否是文件还是目录需要用绝对路径

print "{0} : is file!".format(cur_file)

if os.path.isdir(path):

print "{0} : is dir!".format(cur_file)

list_dir(path) # 递归子目录

二、os.walk 方法

os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。

语法格式如下:

os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])

方法参数说明:

top:要遍历的目录的路径

topdown:可选,如果为 True,则优先遍历 top 目录,以及 top 目录下的每一个子目录,否则优先遍历 top 的子目录,默认为 True

onerror: 可选, 需要一个 callable 对象,当 walk 异常时调用

followlinks:可选, 如果为 True,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录,默认为 False

args:包含那些没有 '-' 或 '--' 的参数列表

返回值: 三元组 (root, dirs, files)

root :所指的是当前正在遍历的目录的地址

dirs :当前文件夹中所有目录名字的 list (不包括子目录)

files :当前文件夹中所有的文件 (不包括子目录中的文件)

实例

def work_dir(file_dir):

print'\n\n<><><><><> work dir <><><><><>'

for root, dirs, files in os.walk(file_dir):

print'\n========================================'

print "root : {0}".format(root)

print "dirs : {0}".format(dirs)

print "files : {0}".format(files)

for file in files:

try:

print'-----------------------------------'

file_name = os.path.splitext(file)[0]

file_suffix = os.path.splitext(file)[1]

file_path = os.path.join(root, file)

file_abs_path = os.path.abspath(file)

file_parent = os.path.dirname(file_path)

print "file : {0}".format(file)

print "file_name : {0}".format(file_name)

print "file_suffix : {0}".format(file_suffix)

print "file_path : {0}".format(file_path)

print "file_abs_path : {0}".format(file_abs_path)

print "file_parent : {0}".format(file_parent)

except Exception, e:

print "Exception", e

三、其他跟文件相关的常用方法

os.path.splitext():分离文件名和扩展名

file = "file_test.txt"

file_name = os.path.splitext(file)[0] # 输出:file_test

file_suffix = os.path.splitext(file)[1] # 输出:.txt

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

os.path.isfile():判断是否是文件

os.path.isdir():判断是否是目录

os.path.dirname():获取当前文件所在的目录,即父目录

os.makedirs():创建多级目录

os.mkdir():创建单级目录

os.path.getsize():获取文件大小

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现相关推荐

  1. python 获取路径的盘符_python获取磁盘号下盘符步骤详解

    这次主要教的是如何通过Python 获取Windows系统下的所有的磁盘盘符,以列表的形式展示出来,获取磁盘号下的盘符包括能够获取到我们正在插在电脑上的U盘,也可以读取到,希望能够对你们在学习过程中有 ...

  2. 在python中requests模块怎么安装_Python requests模块在Windows下安装

    发现一个爬虫库太方便了,而且支持python3! 安装方法在http://docs.python-requests.org/en/latest/user/install/#install很详细 只不过 ...

  3. python 获取文件夹名称大全_python 获取指定文件夹下所有文件名称并写入列表的实例...

    如下所示: import os import os.path rootdir = "./pic_data" file_object = open('train_list.txt', ...

  4. python查找指定文件夹并重命名_python获取指定文件夹下的所有文件名,并删选指定类型文件进行重命名以及撤销重命名...

    1.加载包 import os 2.定义函数:获取文件夹file_dir下指定类型file_type的所有文件名 def file_name(file_dir,file_type=''):#默认为文件 ...

  5. python script文件夹在哪_Python获取当前脚本文件夹(Script)的绝对路径方法代码

    Python脚本有一个毛病,当使用相对路径时,被另一个不同目录下的py文件中导入时,会报找不到对应文件的问题.感觉是当前工作目录变成了导入py文件当前目录.如果你有配置文件的读取操作,然后都放在一个p ...

  6. python获取文件修改时间 错误_python 封装selenium 出错后,以时间生成文件夹保存错误图片 做梦的人...

    背景:在selenium出错后都会截图,那截图的时候都是以当天时间存入到当前时间文件夹中,那这个就可以分成3部,进行封装 一:格式化数据 #encoding=utf-8 import time fro ...

  7. python发送文件给微信好友_python获取天气接口给指定微信好友发天气预报

    先看下效果图: 用到的模块: PyMySQL requests threading wxpy 要实现上面的示例,首先是有两大块地方 获取天气信息 通过微信将天气信息发送出去 而获取天气信息又包括几个小 ...

  8. python 获取qq群成员信息_python 获取qq群成员列表数据

    #!/usr/bin/python # -*- coding: utf-8 -*- import re import time import xlsxwriter from selenium impo ...

  9. python idle编辑的代码文件拓展名是_Python IDLE编辑器打开后缀名为.py的文件

    原博文 2020-04-08 17:56 − 在Windows操作系统下默认使用Python自带的IDLE编辑器打开后缀名为.py的文件. 1. win+R打开运行 2. 输入regedit,确定 3 ...

  10. python获取绝对路径的区别_python 获取路径不同方法的比较

    在软件中经常需要获取文件所在路径,方法有很多种( 例如 os.path.realpath(__file__), os.getcwd(), os.path.abspath(__file__),  sys ...

最新文章

  1. 数据流分析:可用表达式的计算+活跃变量计算+到达定值。
  2. NLP的一些学习资料
  3. CentOS 初体验十四:阿里云安装Gitlab
  4. 使用validate.js实现表单数据验证
  5. STM32H743+CubeMX-移植ThreadX
  6. HTML---初识HTML
  7. 命令行调用dubbo服务
  8. 【前端 · 面试 】HTTP 总结(九)—— HTTP 协商缓存
  9. mysql基础5-数据的操作
  10. 20200105每日一句
  11. linux的打包压缩文件,linux打包文件,压缩文件
  12. 如何做好学术演讲-01
  13. 《辛雷学习方法》读书笔记——前言
  14. 交互设计好书推荐:【A029】[图灵交互设计丛书].简约至上:交互式设计四策略.第2版
  15. 怎样用计算机求立方根的近似数,(教案3)6.2 立方根
  16. 2021中国AI产业10大趋势,一分钟看明白 | WAIC2021
  17. error: #109: expression preceding parentheses of apparent call must have (pointer-to-) function typ
  18. springboot mybatis 分页
  19. idea中启动vue项目
  20. 山寨王被山寨 腾讯九城恶性竞争害产业

热门文章

  1. react结合redux的开发步骤
  2. c mysql web开发实例教程_java web 开发入门实例
  3. DWR的学习文档(Hello World,类型转换,Spring,Annotation)
  4. linux 注销其它用户,linux下注销其它用户或者tty的命令
  5. 使用scrum开发软件的一般过程是什么?_黑色灌封胶的使用工艺复杂吗?使用过程中应该注意什么?...
  6. java 的“mwq”_java的对象模型 - osc_mwqvsfzo的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. Dreamoon Likes Coloring CodeForces - 1330C(贪心+思维)
  8. Distinct Characters Queries CodeForces - 1234D(线段树求区间字母种类数)
  9. HJ浇花(牛客竞赛 约束差分)
  10. Linux命令修复方法,在Linux终端运行sudoedit -s /命令看未修复和已修复的效果