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的网络编程库Gevent的安装及使用技巧
Jun 24 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
python学生信息管理系统(初级版)
Oct 17 Python
python并发和异步编程实例
Nov 15 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
如何在pycharm中安装第三方包
Oct 27 Python
运行python提示no module named sklearn的解决方法
Nov 29 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
js表单登陆验证示例
2016/10/19 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python提取log文件内容并画出图表
2019/07/08 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
农行实习自我鉴定
2013/09/22 职场文书
办公室年终个人自我评价
2013/10/28 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
监考失职检讨书
2015/01/26 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
redis数据一致性的实现示例
2022/03/18 Redis
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS
微信小程序实现轮播图指示器
2022/06/25 Javascript