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实现的各种排序算法代码
Mar 04 Python
python with statement 进行文件操作指南
Aug 22 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
python爬取酷狗音乐排行榜
Feb 20 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
Python绘制组合图的示例
Sep 18 Python
Python批量将csv文件转化成xml文件的实例
May 10 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 smarty模板引擎的6个小技巧
2014/04/24 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
python读写LMDB文件的方法
2018/07/02 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
python远程邮件控制电脑升级版
2019/05/23 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
python识别验证码的思路及解决方案
2020/09/13 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
js实现弹框效果
2021/03/24 Javascript
数控个人求职信范文
2014/02/03 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
同意报考证明
2015/06/17 职场文书
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript
muduo TcpServer模块源码分析
2022/04/26 Redis