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的mysqldb安装步骤详解
Aug 14 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
python交换两个变量的值方法
Jan 12 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
基于python读取.mat文件并取出信息
Dec 16 Python
pytorch 自定义参数不更新方式
Jan 06 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
python 窃取摄像头照片的实现示例
Jan 08 Python
用Python将库打包发布到pypi
Apr 13 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写的采集程序
2007/03/16 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
PHPMailer发送邮件
2016/12/28 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js分页代码分享
2014/04/28 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
Python人脸识别初探
2017/12/21 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
django框架自定义用户表操作示例
2018/08/07 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
数学高效课堂实施方案
2014/03/29 职场文书
法人代表任命书范本
2014/06/05 职场文书
节约用电倡议书
2015/04/28 职场文书
初中生活随笔
2015/08/15 职场文书
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL