使用Python做一些自动化操作时,经常与文件夹和文件打交道,这就依赖于OS模块了。

OS是Operate System的缩写,是Python标准库中一个用于访问操作系统功能的模块,OS模块中的接口可以跨平台、跨系统访问。

OS模块功能很强大,能够做很多事,举个栗子吧:

获取平台信息,判断操作系统

对目录操作

判断操作

有时候我们需要扫码某个文件夹下的文件,然后根据扩展名自动载入对应文件,比如批量读取所有Excel文件,处理Excel里面的数据。下面就介绍两个方法,如何对文件夹/文件进行扫描。

os.listdir()

[scode]os.listdir()[/scode]方法语法格式如下:

os.listdir(path)

该方法用于返回指定的文件夹path包含的文件或文件夹的名字的列表,在Unix系统下[mark]不会包含 . 和 .. [/mark],并且[mark]不会遍历[/mark]列出子文件夹下的文件和文件夹。

如果你想列出当前Python文件所在目录下的所有文件和文件夹,再告诉你一个很有用的方法:[scode]os.getcwd()[/scode]

当然我们还可以对文件夹和文件进行过滤,下面以代码作为演示:

import os

current_dir = os.getcwd()

for f in os.listdir(current_dir):

# 返回当前绝对路径,使用os.path.join()方法可以不用考虑路径分隔符

absolute_path = os.path.join(path, f)

# 如果是文件

if os.path.isfile(absolute_path):

print("这是文件: ", absolute_path)

elif os.path.isdir(absolute_path):

print("这是文件夹:", absolute_path)

使用[scode]os.path.join()[/scode]可以完美解决不同平台路径的分隔符问题,再也不怕搞错路径啦。

我们知道,Windows系统路径分隔符是"\\", Linux类系统如Ubuntu的分隔符是"/"。如果你是一个善于动手的好孩子,可以手动添加分隔符,[scode]os.sep[/scode]可以返回当前平台的路径分隔符。

os.walk()

如果你搜索Python列出当前文件夹下相关文章,大多数看到的都是介绍os.walk()方法,如果我一开始介绍这个方法,你的小手已经点向了小红叉。

walk()方法语法格式如下:

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

top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。

root 所指的是当前正在遍历的这个文件夹的本身的地址

dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)

files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。

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

followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

敲重点,[scode]os.walk()[/scode]会进行遍历,不管你的文件目录藏的有多深,也逃不过它的五指山,这是与[scode]os.list()[/scode]不同点之一。

下面以一个例子演示[scode]os.walk()[/scode]方法

import os

current_path = os.getcwd()

for root, dirs, files in os.walk(current_path, topdown=False):

for name in files:

print(os.path.join(root, name))

for name in dirs:

print(os.path.join(root, name))

python目录下的文件夹_Python列出当前文件夹下文件的两种方法相关推荐

  1. linux 输出到文件 新,如何将Linux命令输出保存到文件的两种方法

    本篇文章分享了如何将Linux命令行输出保存到文件中.文章分享了两种方法:一种是使用Linux IO重定向符号,一种是使用tee命令.tee命令比Linux IO重定向符号更好用. 当您在Linux终 ...

  2. 带圆圈大小的散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!...

    前言 散点图是Matplotlib常用图形之一,与线形图类似.但是这种图形不再由线段连接,而是由独立的点.圆圈或其他形状构成.那么怎么画散点图呢?Matplotlib给出了两种不同的方法,去画散点图. ...

  3. c++ 显示三维散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!

    前言 散点图是Matplotlib常用图形之一,与线形图类似.但是这种图形不再由线段连接,而是由独立的点.圆圈或其他形状构成.那么怎么画散点图呢?Matplotlib给出了两种不同的方法,去画散点图. ...

  4. java 文件尾部_java 在file的尾部添加数据的两种方法总结

    java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将rando ...

  5. python命令行模式怎么输入_python获得命令行输入的参数的两种方式

    外部直接执行python文件时,我们有时需要获得命令行的参数6ok免费资源网 获得命令行参数的两种方式6ok免费资源网 1.通过sys.argv6ok免费资源网 sys.argv:获得一个参数列表,第 ...

  6. python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法

    IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0 ...

  7. 服务器里文件表格如何自动备份,Excel电子表格自动备份的两种方法

    对于数据量大.数据重要性高的EXCEL文件,如果出现任何意外导致数据遭受损坏,那么,将是一件严重的问题. 平时我们在操作EXCEL时,应该养成良好的习惯,即让EXCEL自动备份,以防不测. 以下是两种 ...

  8. datetime 比较_Python 字典中key命中取值的两种方法性能比较!

    起步 从字典中取值有两个方法,一个是先判断key是否在字典中再取值:另一个是包裹try块中直接去取值: Python资源共享群:484031800 def use_in(d, key):if key ...

  9. python获取字典的值_python取出字典中的所有值的两种方法

    原博文 2018-06-19 18:29 − 方法一: spam = {'A':123 ,'B':345,'C':345 } for k,v in spam.items(): print(k,v) 方 ...

  10. python实现位置移动_Python实现 列表左移N个位置的两种方法。

    ''' Created on 2016年12月9日 @author: jiangxh ''' #可用内置函数代替 def reverse(l, left, right): for m in range ...

最新文章

  1. hdpi、mdpi、ldpi图片规格
  2. jquery学习手记(3)属性
  3. Horspool 字符串快速查找算法
  4. mysql c webservice_如何编写webservice c
  5. wepy 父调用子组件方法_wepy踩坑小记(一)
  6. Linux操作系统中ps命令常见用法
  7. mysql 跳过授权表_跳过授权表登录后使用replace into创建root权限用户
  8. uva 1585 Score(Uva-1585)
  9. hisi3520dv400镜像烧录方法(hitool)或/tftp
  10. mPaaS 月度小报|魔方卡片(Cube)公测,十个卡片模板任意使用
  11. win7搜索网络计算机文件,Win7查找局域网共享文件的方法
  12. 微信小程序与普通网页区别
  13. sed替换字符串(变量)
  14. win10系统激活遇到的问题
  15. windows powershell/cmd更改字体
  16. uni-app小程序分享
  17. (转)Android屏幕适配全攻略(最权威的官方适配指导)
  18. 人工智能发展历史与趋势
  19. A. Arena of Greed【贪心+特判】
  20. css金币动画_HTML5 超级马里奥游戏里面的金币动画(带音效)

热门文章

  1. cypress 的错误消息 - the element has become detached or removed from the dom
  2. Orbeon form PE 版本 dmv-14 点击 save 按钮之后的执行逻辑
  3. 如何将 SAP 电商云 Spartacus UI 部署到 tomcat 上运行
  4. 关于 SAP Spartacus low level Component的customization
  5. SAP Spartacus UserService.get方法的调用时机
  6. SAP SMP的一些截图
  7. OPA 23 - Mock server
  8. Sales area data model research in QDD
  9. How is an SAP OData Batch request handled in the backend
  10. binding.filter(filter) will trigger OData request to backend