用Python遍历目录
用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遍历目录的更多相关文章
- python遍历目录文件脚本的示例
例子 自己写的一个Python遍历文件脚本,对查到的文件进行特定的处理.没啥技术含量,但是也记录一下吧. 代码如下 复制代码 #!/usr/bin/python# -*- coding: utf-8 ...
- python遍历目录os.walk(''d:\\test2",topdown=False)
os.walk(top, topdown=True, onerror=None, followlinks=False)遍历目录,topdown=false表示先返回目录,后返回文件 参数说明: top ...
- Python遍历目录下所有文件的最后一行进行判断若错误及时邮件报警-案例
遍历目录下所有文件的最后一行进行判断若错误及时邮件报警-案例: #-*- encoding: utf-8 -*- __author__ = 'liudong' import linecache,sys ...
- Python 遍历目录
代码: 1.递归使用遍历目录 import os def scanfile(path): filelist = os.listdir(path) allfile = [] for filename i ...
- Python 遍历目录下的子目录和文件
import os A: 遍历目录下的子目录和文件 for root,dirs ,files in os.walk(path) root:要访问的路径名 dirs:遍历目录下的子目录 files:遍历 ...
- Python遍历目录下xlsx文件
对指定目录下的指定类型文件进行遍历,可对文件名关键字进行条件筛选 返回值为文件地址的列表 import os # 定义一个函数,函数名字为get_all_excel,需要传入一个目录 def get_ ...
- python遍历目录下所有文件
# -*- coding:utf-8 -*- import os if __name__ == "__main__": rootdir = '.\data' list = os.l ...
- python遍历目录
os.walk() 用元组表示(dirpath, dirnames, filenames): 第一个是根路径,dirpath为str类型: 第二个是根路径中的文件夹,dirnames为list类型: ...
- python遍历目录的方法 walk listdir
这篇文章里描述了这些情况: https://www.cnblogs.com/jiaxin359/p/7324077.html 不用递归的时候,用 listdir 需要递归的时候,用walk
随机推荐
- 64位系统里的IIS运行32位ODP.NET的方法
在64位Win7里的IIS里部署使用了ODP.NET的网站,Oracle的版本是11.20.3.20.直接部署会提示错误:在64位环境里使用了32位的程序.自己折腾了两天,最后才从别人的博客里找到解决 ...
- 【耐克】【Air Max90 气垫跑鞋】
[max90 36-44] [加毛冬款 36-44] [黑白百搭款 36-44] [air max90 高帮 冬款 耐看百搭 36-44] [air max90 高帮 40-44] [Air Max9 ...
- python——threading模块
一.什么是线程 线程是操作系统能够进行运算调度的最小单位.进程被包含在进程中,是进程中实际处理单位.一条线程就是一堆指令集合. 一条线程是指进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条 ...
- iOS 标识
通常情况下,iOS系统用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码.证书等等,就需要使用更为安全的keychain了. keychain里保存的信息不会因App被删除而丢 ...
- java编译正常javac出错不是内部或外部命令
javac不是内部或外部命令 安装jdk版本jdk-8u111-windows-x64(jdk1.8.0_111) 配置环境: JAVA_HOME D:\xiazai\Java\jdk1.8.0_11 ...
- AutoVue打开ProE工程图中文乱码
解决办法: 在AutoVue安装目录/Bin/allusers.ini中增加 [Options]ProELang=Chinese_cn
- 在CentOS中安装中文支持
执行命令: # yum groupinstall chinese-support 修改配置文件: # vim /etc/sysconfig/i18n LANG="zh_CN.UTF-8&qu ...
- Node.js基础与实战
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
- [Maven]Maven非常详细完整的教程
请参考:http://blog.csdn.net/u012152619/article/category/6239920 第四部分已看完 另外也可参看简书:http://www.jianshu.com ...
- [MySQL] 高可用架构MMM简单介绍
一.来源及原理: 众所周知,MySQL自身提供了AB复制(主从复制),然后可以很轻松实现master-master双向复制,同时再为其中一个Master节点搭建一个Slave库. 这样就实现了MySQ ...