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内置数据结构与操作符的练习题集锦
Jul 01 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
python 数据的清理行为实例详解
Jul 12 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
20个常用Python运维库和模块
Feb 12 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
python进程间通信Queue工作过程详解
Nov 01 Python
python 项目目录结构设置
Feb 14 Python
Django用户登录与注册系统的实现示例
Jun 03 Python
什么是python的函数体
Jun 19 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 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 csv操作类代码
2009/12/14 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
PHP函数积累总结
2019/03/19 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
python 容器总结整理
2017/04/04 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python通过链接抓取网站详解
2019/11/20 Python
Python API len函数操作过程解析
2020/03/05 Python
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
外科实习自我鉴定
2013/10/06 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
工厂标语大全
2014/10/06 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫