Python使用os.listdir和os.walk获取文件路径


Posted in Python onMay 21, 2020

情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir

在我们的桌面上有一个file目录(文件夹),里面有三个文件

file(dir)|

--|test1.txt

--|test2.txt

--|test3.txt

用下面的程序获得文件的绝对路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for filename in os.listdir(path):
print(os.path.join(path,filename))

使用os.listdir读取到一个目录下面所有的文件名,然后使用os.path.join把目录的路径和文件名结合起来,就得到了文件的绝路路径,结果如下:

C:\Users\Administrator\Desktop\file\test1.txt
C:\Users\Administrator\Desktop\file\test2.txt
C:\Users\Administrator\Desktop\file\test3.txt

情况2:递归的情况,一个目录下面既有目录也有文件,使用os.walk:

os.walk介绍:

我们在桌面上面建立一个file目录,里面的组织结构如下:

file(dir):

--|file1(dir):

--|file1_test1.txt

--|file1_test2.txt

--|file2(dir)

--|file2_test1.txt

--|file_test1.txt

--|file_test2.txt

运行一下代码:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
print(dirpath,dirnames,filenames)

输出结果如下:

C:\Users\Administrator\Desktop\file ['file1', 'file2'] ['file_test1.txt', 'file_test2 .txt']
C:\Users\Administrator\Desktop\file\file1 [] ['file1_test1.txt', 'file1_test2.txt']
C:\Users\Administrator\Desktop\file\file2 [] ['file2_test1.txt']

os.walk输入一个路径名称,以yield的方式(其实是一个生成器)返回一个三元组 dirpath, dirnames, filenames,

dirpath为目录的路径,为一个字符串。比如上面的 C:\Users\Administrator\Desktop\file和C:\Users\Administrator\Desktop\file\file1等。

dirnames列出了目录路径下面所有存在的目录的名称。比如在 C:\Users\Administrator\Desktop\file下面有两个目录:file1和file2,那么它就列出了这个目录路径下的目录名称。

filenames列出了目录路径下面所有文件的名称。同样在 C:\Users\Administrator\Desktop\file下面有两个文件file_test1.txt和file_test2 .txt,那么程序将会列出这两个文件名。

如何获得一个路径下面所有的文件路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
for filename in filenames:
print(os.path.join(dirpath,filename))

得到的结果如下:

C:\Users\Administrator\Desktop\file\file_test1.txt
C:\Users\Administrator\Desktop\file\file_test2 .txt
C:\Users\Administrator\Desktop\file\file1\file1_test1.txt
C:\Users\Administrator\Desktop\file\file1\file1_test2.txt
C:\Users\Administrator\Desktop\file\file2\file2_test1.txt

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

Python 相关文章推荐
Python 实现数据库更新脚本的生成方法
Jul 09 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
python自动化报告的输出用例详解
May 30 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
一行python实现树形结构的方法
Aug 09 Python
python装饰器相当于函数的调用方式
Dec 27 Python
Python实现钉钉订阅消息功能
Jan 14 Python
jupyter notebook 重装教程
Apr 16 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 Python
Python实现粒子群算法的示例
Feb 14 Python
keras 权重保存和权重载入方式
May 21 #Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 #Python
Python通过文本和图片生成词云图
May 21 #Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 #Python
Python 实现敏感目录扫描的示例代码
May 21 #Python
基于python检查矩阵计算结果
May 21 #Python
Django 解决由save方法引发的错误
May 21 #Python
You might like
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
javascript 使td内容不换行不撑开
2012/11/29 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
创建精神文明单位实施方案
2014/03/08 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
商铺门面租房协议书
2014/10/21 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle