python使用os.listdir和os.walk获得文件的路径的方法


Posted in Python onDecember 16, 2017

本文介绍了python使用os.listdir和os.walk获得文件的路径的方法,分享给大家。具体如下:

os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。

os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。

情况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开发之thread线程基础实例入门
Nov 11 Python
Flask 让jsonify返回的json串支持中文显示的方法
Mar 26 Python
使用numba对Python运算加速的方法
Oct 15 Python
python原类、类的创建过程与方法详解
Jul 19 Python
Django的Modelforms用法简介
Jul 27 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
Django解决frame拒绝问题的方法
Dec 18 Python
使用python绘制分组对比柱状图
Apr 21 Python
python读取与写入csv格式文件的示例代码
Dec 16 #Python
浅谈用VSCode写python的正确姿势
Dec 16 #Python
numpy中索引和切片详解
Dec 15 #Python
Python实现简单网页图片抓取完整代码实例
Dec 15 #Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 #Python
神经网络python源码分享
Dec 15 #Python
神经网络理论基础及Python实现详解
Dec 15 #Python
You might like
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
Python 必须了解的5种高级特征
2020/09/10 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
职称自我鉴定
2013/10/15 职场文书
自荐信的两点禁忌
2013/10/30 职场文书
先进集体获奖感言
2014/02/13 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
大学生简短的自我评价
2014/09/12 职场文书
文明家庭事迹材料
2014/12/20 职场文书
电力工程合作意向书
2015/05/11 职场文书