python目录下的文件夹_Python列出当前文件夹下文件的两种方法
使用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列出当前文件夹下文件的两种方法相关推荐
- linux 输出到文件 新,如何将Linux命令输出保存到文件的两种方法
本篇文章分享了如何将Linux命令行输出保存到文件中.文章分享了两种方法:一种是使用Linux IO重定向符号,一种是使用tee命令.tee命令比Linux IO重定向符号更好用. 当您在Linux终 ...
- 带圆圈大小的散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!...
前言 散点图是Matplotlib常用图形之一,与线形图类似.但是这种图形不再由线段连接,而是由独立的点.圆圈或其他形状构成.那么怎么画散点图呢?Matplotlib给出了两种不同的方法,去画散点图. ...
- c++ 显示三维散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!
前言 散点图是Matplotlib常用图形之一,与线形图类似.但是这种图形不再由线段连接,而是由独立的点.圆圈或其他形状构成.那么怎么画散点图呢?Matplotlib给出了两种不同的方法,去画散点图. ...
- java 文件尾部_java 在file的尾部添加数据的两种方法总结
java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将rando ...
- python命令行模式怎么输入_python获得命令行输入的参数的两种方式
外部直接执行python文件时,我们有时需要获得命令行的参数6ok免费资源网 获得命令行参数的两种方式6ok免费资源网 1.通过sys.argv6ok免费资源网 sys.argv:获得一个参数列表,第 ...
- python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法
IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0 ...
- 服务器里文件表格如何自动备份,Excel电子表格自动备份的两种方法
对于数据量大.数据重要性高的EXCEL文件,如果出现任何意外导致数据遭受损坏,那么,将是一件严重的问题. 平时我们在操作EXCEL时,应该养成良好的习惯,即让EXCEL自动备份,以防不测. 以下是两种 ...
- datetime 比较_Python 字典中key命中取值的两种方法性能比较!
起步 从字典中取值有两个方法,一个是先判断key是否在字典中再取值:另一个是包裹try块中直接去取值: Python资源共享群:484031800 def use_in(d, key):if key ...
- python获取字典的值_python取出字典中的所有值的两种方法
原博文 2018-06-19 18:29 − 方法一: spam = {'A':123 ,'B':345,'C':345 } for k,v in spam.items(): print(k,v) 方 ...
- python实现位置移动_Python实现 列表左移N个位置的两种方法。
''' Created on 2016年12月9日 @author: jiangxh ''' #可用内置函数代替 def reverse(l, left, right): for m in range ...
最新文章
- hdpi、mdpi、ldpi图片规格
- jquery学习手记(3)属性
- Horspool 字符串快速查找算法
- mysql c webservice_如何编写webservice c
- wepy 父调用子组件方法_wepy踩坑小记(一)
- Linux操作系统中ps命令常见用法
- mysql 跳过授权表_跳过授权表登录后使用replace into创建root权限用户
- uva 1585 Score(Uva-1585)
- hisi3520dv400镜像烧录方法(hitool)或/tftp
- mPaaS 月度小报|魔方卡片(Cube)公测,十个卡片模板任意使用
- win7搜索网络计算机文件,Win7查找局域网共享文件的方法
- 微信小程序与普通网页区别
- sed替换字符串(变量)
- win10系统激活遇到的问题
- windows powershell/cmd更改字体
- uni-app小程序分享
- (转)Android屏幕适配全攻略(最权威的官方适配指导)
- 人工智能发展历史与趋势
- A. Arena of Greed【贪心+特判】
- css金币动画_HTML5 超级马里奥游戏里面的金币动画(带音效)
热门文章
- cypress 的错误消息 - the element has become detached or removed from the dom
- Orbeon form PE 版本 dmv-14 点击 save 按钮之后的执行逻辑
- 如何将 SAP 电商云 Spartacus UI 部署到 tomcat 上运行
- 关于 SAP Spartacus low level Component的customization
- SAP Spartacus UserService.get方法的调用时机
- SAP SMP的一些截图
- OPA 23 - Mock server
- Sales area data model research in QDD
- How is an SAP OData Batch request handled in the backend
- binding.filter(filter) will trigger OData request to backend