用Python遍历指定目录下的文件,一般有两种常用方法,但它们都是基于Python的os模块。下面两种方法基于Python2.7,主要用到的函数如下:

1.os.listdir(path):列出目录下的所有文件名

2.os.getcwd():获得当前工作目录

3.os.mkdir(dir):创建单个目录

4.os.makedirs('c:\python\a'):创建多级目录

5.os.rmdir(dir):删除单个目录

6.os.removedirs('D:\python'):删除所给路径最后一个目录下所有空目录

7.os.chdir(dir):改变到另一个工作目录上

8.os.path.isfile(path):判断是否是文件

9.os.path.isdir(path):判断是否是目录

10.os.path.join(path,filename):得到文件绝对路径

11.os.chmod(file):修改文件权限与时间戳

12.os.system("dir"):执行操作系统命令

13.os.exec(), os.execvp():启动新进程

14.osspawnv():在后台执行程序

15.os.exit(), os._exit():终止当前进程

16.os.path.split('c:\python\hello.py') --> ('c:\\python', 'hello.py'):分离文件名

17.os.path.splitext('c:\python\hello.py') --> ('c:\\python\\hello', '.py'):分离扩展名

18.os.path.dirname('c:\python\hello.py') --> 'c:\\python':获取路径名

19.os.path.basename('c:\python\hello.py') --> 'hello.py':获取文件名

20.os.path.exists('c:\python\hello.py') --> True:判断文件或目录是否存在

21.os.path.isabs('.\python\') --> False:判断是否是绝对路径

22.os.path.islink('c:\python\hello.py') --> False:判断是否是链接文件

23.os.path.getsize(filename):获取文件大小

24.os.walk():搜索目录下的所有文件

第一种是基于递归函数:

#!/usr/bin/python
# coding:utf-8 import os
def dirList(path):
filelist = os.listdir(path)
for filename in filelist:
filepath = os.path.join(path, filename)
if os.path.isdir(filepath):
print filepath
dirList(filepath)
else:
print filepath dirList('C:\\Users\\Desktop\\Learning python')

第二种是用os模块下的walk()函数:

#!/usr/bin/python
# coding:utf-8 Epath=os.walk('C:\\Users\\Desktop\\Learning python')
for path,dir,filelist in Epath:
for filename in filelist:
print os.path.join(path,filename)

os.walk()函数返回一个元组,该元组有3个元素,这3个元素分别表示每次遍历的路径名,目录列表和文件列表。

注:sublime text编辑器下,代码开头加上#coding:utf-8,可以处理代码中出现的中文字符。以上两种方法在遍历中文名文件或文件名时,sublime中使用Ctrl+B会出现:

[Decode error - output not utf-8]

错误。但在Python shell或cmd中都可以正常显示中文。

用Python遍历目录的更多相关文章

  1. python遍历目录文件脚本的示例

    例子 自己写的一个Python遍历文件脚本,对查到的文件进行特定的处理.没啥技术含量,但是也记录一下吧. 代码如下 复制代码 #!/usr/bin/python# -*- coding: utf-8 ...

  2. python遍历目录os.walk(''d:\\test2",topdown=False)

    os.walk(top, topdown=True, onerror=None, followlinks=False)遍历目录,topdown=false表示先返回目录,后返回文件 参数说明: top ...

  3. Python遍历目录下所有文件的最后一行进行判断若错误及时邮件报警-案例

    遍历目录下所有文件的最后一行进行判断若错误及时邮件报警-案例: #-*- encoding: utf-8 -*- __author__ = 'liudong' import linecache,sys ...

  4. Python 遍历目录

    代码: 1.递归使用遍历目录 import os def scanfile(path): filelist = os.listdir(path) allfile = [] for filename i ...

  5. Python 遍历目录下的子目录和文件

    import os A: 遍历目录下的子目录和文件 for root,dirs ,files in os.walk(path) root:要访问的路径名 dirs:遍历目录下的子目录 files:遍历 ...

  6. Python遍历目录下xlsx文件

    对指定目录下的指定类型文件进行遍历,可对文件名关键字进行条件筛选 返回值为文件地址的列表 import os # 定义一个函数,函数名字为get_all_excel,需要传入一个目录 def get_ ...

  7. python遍历目录下所有文件

    # -*- coding:utf-8 -*- import os if __name__ == "__main__": rootdir = '.\data' list = os.l ...

  8. python遍历目录

    os.walk() 用元组表示(dirpath, dirnames, filenames): 第一个是根路径,dirpath为str类型: 第二个是根路径中的文件夹,dirnames为list类型: ...

  9. python遍历目录的方法 walk listdir

    这篇文章里描述了这些情况: https://www.cnblogs.com/jiaxin359/p/7324077.html 不用递归的时候,用 listdir 需要递归的时候,用walk

随机推荐

  1. 论文笔记--Fast RCNN

    很久之前试着写一篇深度学习的基础知识,无奈下笔之后发现这个话题确实太大,今天发一篇最近看的论文Fast RCNN.这篇文章是微软研究院的Ross Girshick大神的一篇作品,主要是对RCNN的一些 ...

  2. Torch 日志文件的保存 logroll

    Torch 日志文件的保存 logroll 怎样将 Torch 在终端显示的信息,保存到 log 文件中 ?   现在介绍一种方法:利用 logroll 的方式.  参考 https://github ...

  3. JavaScriptPolyfillShim 在JavaScript中Shim和Polyfill有什么区别?

    在JavaScript的世界里,有两个词经常被提到,那就是Shim和Polyfill,它们指的都是什么,又有什么区别?在本文中,将简短的给大家介绍他们之间的联系和区别.Shim一个shim就是一个库, ...

  4. ThoughtWorks.QRCode源码

    http://files.cnblogs.com/files/xiaoyu369/ThoughtWorks.QRCode.rar

  5. [系统集成] 基于Kubernetes 部署 jenkins 并动态分配资源

    基于kubernetes 部署 jenkins master 比较简单,难点是为 jenkins 动态分配资源.基于kubernetes 为 jenkins 动态分配资源需要实现下述功能: 资源分配: ...

  6. Redis应用配置项说明

    近期整理了下项目中Redis配置参数,以便学习备用~ #指定内存大小,格式为1k 1GB 1M,单位不区分大小写 # 1k  => 1000 bytes # 1kb => 1024 byt ...

  7. java.lang.ClassCastException: com.bjsxt.registration.model.User_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy

    1.懒加载 因为此时用的load懒加载机制,到jsp页面在发送sql语句的时候session已经关闭了.所以会报以上错.可以添加过滤器,使session在请求响应完成后再关闭. 过滤器要配置在stru ...

  8. WindowsForm--Bubble User Control

    创建一个自定义用户控件,拖入一个label:lblWords,和一个richTextBox:txtWords 代码: using System; using System.Collections.Ge ...

  9. CRM 2016 子表单中N:1关系 字段要求与新建时的关系

    父表单在新建子表单项时弹出的窗口和 子表单的N:1关系是有关系的.说白了就是子表单窗体上的父表单字段是不是必填项. 关系如下: 1 非必填项 点击子表单的"+"号时,会出现look ...

  10. The project: project which is referenced by the classpath, does not exist.

    有个java工程运行时报The project: project which is referenced by the classpath, does not exist.错误 上网查解决方案,说是将 ...