Python os模块实例之遍历目录及子目录指定扩展名的文件
需求:在该目录下有很多子目录(如下图,截图了部分),现要从该目录和所有子目录下找到所有扩展名为.meta的文件,并获取文件中第二行guid的值(': '后面的),然后将所有guid的值输出到另一文件中
.meta文件截图:
思路:
遍历当前目录的子目录,如果是文件并且扩展名为.meta,获取guid,写入到guid.txt;如果是子目录,则遍历子目录下的文件。
方法一:
#!usr/bin/env python
# -*- coding: utf-8 -*- import os outfile = open('guid.txt', 'a') # 以追加方式打开输出文件
for dir in os.listdir('.'): # 遍历当前目录所有问价和目录
child = os.path.join('.', dir) # 加上路径,否则找不到
if os.path.isdir(child): # 如果是目录,则继续遍历子目录的文件
for file in os.listdir(child):
if os.path.splitext(file)[1] == '.meta': # 分割文件名和文件扩展名,并且扩展名为'meta'
file = os.path.join(child, file) # 同样要加上路径
f = open(file, 'r')
guid = f.readlines()[1].split(': ')[1] # 获取文件第二行以': '分割的后者
outfile.write(guid) # 写入输出文件
f.close()
elif os.path.isfile(child): # 如果是文件,则直接判断扩展名
if os.path.splitext(child)[1] == '.meta':
f = open(child, 'r')
guid = f.readlines()[1].split(': ')[1]
outfile.write(guid)
f.close()
outfile.close()
方法二:上面的方法只能遍历两级目录,如果要遍历三级目录,必须还要加一个for循环。那么可以用到os.walk()方法一次性遍历当前目录和所有子目录的文件和目录。
#!usr/bin/env python
# -*- coding: utf-8 -*- import os outfile = open('guid.txt', 'a') # 以追加方式打开输出文件
for dirpath, dirs, files in os.walk('.'): # 递归遍历当前目录和所有子目录的文件和目录
for name in files: # files保存的是所有的文件名
if os.path.splitext(name)[1] == '.meta':
filename = os.path.join(dirpath, name) # 加上路径,dirpath是遍历时文件对应的路径
f = open(filename, 'r')
guid = f.readlines()[1].split(': ')[1] # 获取文件第二行以': '分割的后者
outfile.write(guid) # 写入输出文件
f.close()
outfile.close()
在该目录下运行此程序,将会得到guid.txt。
相关方法的作用和理解见:http://www.cnblogs.com/victorwu/p/5838430.html
Python os模块实例之遍历目录及子目录指定扩展名的文件的更多相关文章
- java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中
/** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. * * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件 ...
- python工具程序一、复制目录中指定扩展名的文件
#!/usr/bin/env python # coding:utf-8 # xcopy Lib directory and rename all files to *d.lib import os ...
- Python::OS 模块 -- 文件和目录操作
os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...
- python OS 模块 文件目录操作
Python OS 模块 文件目录操作 os模块中包含了一系列文件操作的函数,这里介绍的是一些在Linux平台上应用的文件操作函数.由于Linux是C写的,低层的libc库和系统调用的接口都是C AP ...
- 【学习】Python os模块常用方法 记录
记录一些工作中常用到的用法 os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, topdown=Ture, onerror=None, follow ...
- Python::OS 模块 -- 进程参数
os模块的简介请参看 Python::OS 模块 -- 简介 os模块的文件和目录操作 Python::OS 模块 -- 文件和目录操作 os模块的进程管理 Python::OS 模块 -- 进程管理 ...
- Python::OS 模块 -- 进程管理
os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...
- Python::OS 模块 -- 简介
OS 模块简介 OS模块是Python标准库中的一个用于访问操作系统功能的模块,OS模块提供了一种可移植的方法使用操作系统的功能.使用OS模块中提供的接口,可以实现跨平台访问.但是在OS模块中的接口并 ...
- Python OS模块标准库的系统接口及操作方法
Python OS模块标准库的系统接口及操作方法 os.name 返回当前操作系统名,定义了'posix','nt','mac','os2','ce','java'(我使用win7/python3.1 ...
随机推荐
- TPshop手机新模板的用户消息实现
今天在开发TPshop的手机新模板的消息页面,姑且记录一下. 首先,点击下方右上角,进入消息页面: 数据库中目前模拟了三条数据,有: 点击上图右上角,有: 这个 消息设置 功能是新增的,而且类型由原本 ...
- zabbix监控rds
问题:使用zabbix监控rds,用之前的脚本,执行总是会有密码安全提示: [root@iZ25m1box8cZ alertscripts]# sh rds.sh Uptime mysqladmin: ...
- Python之返回函数
高阶函数可以把函数作为一个结果值返回 举例说明 普通的求积函数是 vim day5-6.py #!/usr/bin/python # -*- coding:utf-8 -*- def product( ...
- 封装GCD以及介绍如何使用
研究GCD有一段时间,翻译了多篇文章,找了很多的资料,看了很多官方文档,看起来很难,实际上很简单,本人一一进行讲解怎么使用. 支持ARC以及非ARC,无论在ARC环境还是在非ARC环境,都需要调用di ...
- 使用 Mono.Cecil 辅助 Unity3D 手游进行性能测试
Unity3D 引擎在 UnityEngine 名字空间下,提供了 Profiler 类(Unity 5.6 开始似乎改变了这个名字空间),用于辅助对项目性能进行测试.以 Android 平台为例 ...
- Vbs脚本实现radmin终极后门
Vbs脚本实现radmin终极后门 代码如下: on error resume next const HKEY_LOCAL_MACHINE = &H80000002 strComputer = ...
- 【SoDiaoEditor电子病历编辑器】阶段性更新--新增复选框、日期控件、表格排版支持等
转眼距离上一次v2正式发布已经过去一个半月了.github期间不定期push了二十几次,同时感谢分布在广州.福建.上海.北京的一众小伙伴,正是你们给出的建议,才让SoDiaoEditor不断完善. 我 ...
- mysql语句优化总结(一)
Sql语句优化和索引 1.Innerjoin和左连接,右连接,子查询 A. inner join内连接也叫等值连接是,left/rightjoin是外连接. SELECT A.id,A.nam ...
- 在linux服务器上发布web应用的完整过程
首先你要有一个完整的web应用的小Demo,一个简单的demo就可以了,但是要涉及到数据库,笔者这里简单的模拟一个登陆的过程. 在本地测试,访问项目: 键入账号密码,点击登陆: 就是这么个简单的动作, ...
- PyCharm的小技巧
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如:代码跳转.智能提示.自动完成.单元测试.版本控制.此外,该IDE提供了一些高级功能, ...