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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
用python实现简单EXCEL数据统计的实例
Jan 24 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
python正则表达式匹配IP代码实例
Dec 28 Python
Python实现粒子群算法的示例
Feb 14 Python
Python中生成ndarray实例讲解
Feb 22 Python
Python实现仓库管理系统
May 30 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
jquery 插件学习(四)
2012/08/06 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
详解JavaScript中的Object.is()与"==="运算符总结
2020/06/17 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
python 换位密码算法的实例详解
2017/07/19 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
大型活动策划方案
2014/01/12 职场文书
应用英语专业自荐信
2014/01/26 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
期中考试反思800字
2014/05/01 职场文书
护理专科学生自荐书
2014/07/05 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书