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实现socket端口重定向示例
Feb 10 Python
Python multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
PyMongo安装使用笔记
Apr 27 Python
Python入门教程之if语句的用法
May 14 Python
Python批量重命名同一文件夹下文件的方法
May 25 Python
详解Python中的变量及其命名和打印
Mar 11 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
pandas 透视表中文字段排序方法
Nov 16 Python
在python中只选取列表中某一纵列的方法
Nov 28 Python
Python 文件数据读写的具体实现
Jan 24 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
根据配置文件加载js依赖模块
2014/12/29 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
python实现下载整个ftp目录的方法
2017/01/17 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Tornado 多进程实现分析详解
2018/01/12 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
工程管理造价应届生求职信
2013/11/13 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
毕业晚会主持词
2014/03/24 职场文书
公司投资建议书
2014/05/16 职场文书
2014年销售部工作总结
2014/12/01 职场文书
门市房租房协议书
2014/12/04 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python