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同时兼容python2和python3的8个技巧分享
Jul 11 Python
Python实现的数据结构与算法之链表详解
Apr 22 Python
python中while循环语句用法简单实例
May 07 Python
Android分包MultiDex策略详解
Oct 30 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
django admin 后台实现三级联动的示例代码
Jun 22 Python
python实现杨氏矩阵查找
Mar 02 Python
python实现银联支付和支付宝支付接入
May 07 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
javascript 有趣而诡异的数组
2009/04/06 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
vue实现微信分享功能
2018/11/28 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
跟老齐学Python之print详解
2014/09/28 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
优秀大学生职业生涯规划书
2014/02/27 职场文书
家长会主持词开场白
2014/03/18 职场文书
百日安全生产活动总结
2014/07/05 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
学生会工作感言
2015/08/07 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js