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

一、os.listdir 方法

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

语法格式如下:

os.listdir(path)

实例代码

def list_dir(file_dir):

'''

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

'''

print' <><><><><><> 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' <><><><><> work dir <><><><><>'

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

print' ========================================'

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读取一个目录下所有目录和文件的方法.分享给大家供大家参考,具体如下: 这里介绍的是刚学python时的一个读取目录的列子,给大家分享下: #!/usr/bin/python ...

  2. C#取得指定路径下所有目录及文件名称(可递归)

     1using System.IO;  2  3/**//// <summary>  4/// 取得指定路径下所有目录及文件名称(可递归)  5/// </summary>   ...

  3. 【Android 逆向】Android 系统文件分析 ( 根目录下的目录和文件 | /data/ 应用和用户数据目录 | /mnt/ 挂载其它设备目录 )

    文章目录 一.根目录下的目录和文件 二.data 应用和用户数据目录 三.mnt 挂载其它设备目录 一.根目录下的目录和文件 在之前的几篇博客中 , 介绍了 /proc/ 目录下的进程相关目录文件 ; ...

  4. Linux中,显示当前目录位置、列出当前目录下的目录和文件、切换或进入目录。

    一.显示当前目录位置 pwd 二.列出当前目录下的目录和文件 ls ls --help:得到所有关于ls的命令 三.切换或进入目录命令 进入根目录:cd / 目前所在目录:cd . 返回上一层:cd ...

  5. python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现

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

  6. 利用python批量查询企业信息_python实现批量获取指定文件夹下的所有文件的厂商信息...

    本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import ...

  7. Python 获取指定文件夹下的目录和文件

    提出要求: 给定一个文件夹名称,让你得到该目录下的文件的路径,以及包含的文件夹下的文件路径. 在这里我们用到4个Python内置提供的函数: os.listdir(dir_path) -------& ...

  8. python下载后如何使用-如何使用Python通过HTTP下载文件

    我有一个小的实用程序,可以用来按计划从网站上下载MP3,然后构建/更新我显然已添加到iTunes的播客XML文件. 创建/更新XML文件的文本处理是用Python编写的. 我在Windows .bat ...

  9. python下载的库要放到哪里-Python下载url并保存文件的三种方法

    本节主要内容: 学习python下载Url并保存文件的方法. Python中通常是使用Http利用urllib或urllib2模块来下载url中的内容. 当然也可以利用ftplib从ftp站点下载文件 ...

最新文章

  1. R语言ggplot2可视化散点图实战:绘制基础散点图、为所有散点添加标签、只为大于阈值的散点添加标签
  2. javaScript中常见的几种报错类型
  3. 战神引擎修改服务器时间,修改战神引擎手游进入游戏公告内容教程
  4. 【linux】关于分析系统问题的前几分钟
  5. 视频API的发展方向
  6. ejb 2.0 3.0_EJB 3.0注入和查找简介
  7. windows文件路径大于MAX_PATH
  8. python-if条件判断与while/for循环
  9. 达内php第三次月考,达内第三次月考
  10. win7让任务管理器pid显示出来的方法
  11. 从零开始学PowerShell(4)数据的选择、排序与格式化
  12. Windows2003工组环境通过CA证书对加密WEB服务器
  13. HTML内置css改变文字效果,CSS+HTML文字效果
  14. VBA中让程序休眠 SLeep的方法
  15. python以读写方式打开文件_python 文件读写with open模式r,r+,w,w+,a,a+的区别
  16. Python学习之==接口开发
  17. 科技正在淘汰传统行业,这次的“倒霉鬼”是券商
  18. 广域网的应用场景是什么?
  19. C++语句 与简单方法
  20. 华为SNS2224的Zone配置

热门文章

  1. [BZOJ1007] [HNOI2008] 水平可见直线 (凸包)
  2. 超大 Cookie 拒绝服务攻击
  3. 【IT笔试面试题整理】 二叉树任意两个节点间最大距离
  4. 80 年代以来的操作系统 GUI 设计进化史
  5. 创业者必看:创业得出的10条血泪经验
  6. IT项目监理的三种模式比较
  7. Python web 项目的依赖管理工具
  8. C++知识点记录(C++ primer)
  9. 20181029NOIP模拟赛T2
  10. magic_quotes_gpc和magic_quotes_runtime的区别和用法详解