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设计模式之观察者模式实例
Apr 26 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
python日志记录模块实例及改进
Feb 12 Python
python GUI实例学习
Nov 21 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
python使用jieba实现中文分词去停用词方法示例
Mar 11 Python
python爬取网易云音乐评论
Nov 16 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
python反编译教程之2048小游戏实例
Mar 03 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
python本地文件服务器实例教程
May 02 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几个数学计算的内部函数学习整理
2011/08/06 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
php通过字符串调用函数示例
2014/03/02 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
IE 当eval遇上function的处理
2011/08/09 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
解决django FileFIELD的编码问题
2020/03/30 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
爱护公共设施倡议书
2014/08/29 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
质量保证书格式
2015/02/27 职场文书
协议书格式模板
2016/03/24 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python