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 相关文章推荐
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
Python 查看文件的编码格式方法
Dec 21 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
Python基于scipy实现信号滤波功能
May 08 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
django rest framework serializers序列化实例
May 13 Python
六种酷炫Python运行进度条效果的实现代码
Jul 17 Python
Python selenium环境搭建实现过程解析
Sep 08 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
Python之matplotlib绘制饼图
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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
前端性能优化建议
2020/09/17 Javascript
Python交换变量
2008/09/06 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
python实现海螺图片的方法示例
2019/05/12 Python
python修改字典键(key)的方法
2019/08/05 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
营销专业应届生求职信
2013/11/26 职场文书
军训自我鉴定范文
2014/02/13 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
辞职信的写法
2015/02/27 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
Pygame Rect区域位置的使用(图文)
2021/11/17 Python