文档章节

轻松python之文件专题-关于目录树的一些操作

raylee2015
 raylee2015
发布于 2015/09/17 16:40
字数 425
阅读 7
收藏 0

1.遍历目录树

使用os.walk方法

>>> import os
>>> for pathname,dirname,filename in os.walk("c:/Python34/TestDict"):
	print('path:'+pathname)
	print('dir:'+str(dirname))
	print('file:'+str(filename))

	
path:c:/Python34/TestDict
dir:['Test1', 'Test2']
file:['123.txt', 'input_file.txt', 'LICENSE.txt', 'NEWS.txt', 'output_file.txt', 'README.txt']
path:c:/Python34/TestDict\Test1
dir:[]
file:['output_file.txt']
path:c:/Python34/TestDict\Test2
dir:[]
file:['input_file.txt']

说明一下,os.walk返回三个参数,第一个是路径,第二个是路径下有没有文件夹,第三个是路径下的文件



2.搜查某路径下所有个文件

>>> import os
>>> for pathname,dirname,filename in os.walk("c:/Python34/TestDict"):
	if  'Test1' in pathname:
		print('path:'+pathname)
		print('dirs:'+str(dirname))
		print('files:'+str(filename))

		
path:c:/Python34/TestDict\Test1
dirs:[]
files:['output_file.txt']
>>>

我们可以将上面的代码封装成一个方法

>>> import os
>>> def searchFile(keyWord,root):
	for pathname,dirname,filename in os.walk(root):
		if  keyWord in pathname:
			print('path:'+pathname)
			print('dirs:'+str(dirname))
			print('files:'+str(filename))

			
>>> searchFile('Test1',"c:/Python34/TestDict")
path:c:/Python34/TestDict\Test1
dirs:[]
files:['output_file.txt']


3.搜索某路径下某名字的文件

>>> def searchFile(keyWord,root):
	for path,subdirs,files in os.walk(root):
		#print(keyWord)
		#print(files)
		if  keyWord in files:
			print(os.path.join(path,keyWord))

			
>>> searchFile("input_file.jpeg","c:/Python34/TestDict")
c:/Python34/TestDict\input_file.jpeg
c:/Python34/TestDict\Test2\input_file.jpeg
>>>


4.批量修改某文件夹下某种文件的后缀

>>> import os
>>> def swapFileExtendsion(root,oldExtends,newExtends):
	if oldExtends[:1]!='.':
		oldExtends='.'+oldExtends
	extendLength=-len(oldExtends)
	if newExtends[:1]!='.':
		newExtends='.'+newExtends
	for path,subdirs,files in os.walk(root):
		for oldFile in files:
			#print(oldFile [extendLength:])
			#print(oldExtends)
			if oldFile [extendLength:]==oldExtends:
				oldFile=os.path.join(path,oldFile)
				newFile=oldFile[:extendLength]+newExtends
				os.rename (oldFile,newFile)

这个场景主要发生在服务器经常系统生产某些文件,而这些文件的后缀名错了,需要改过来


就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录



版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/48198275

raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
请问有没有好用的C或C++文件系统库?

与python相比,C和C++的文件系统相关函数简直是弱爆了, 比如构建一个完整路径,python下面可以: os.path.join("C:\\user", "file.xml") => "C:\\user\\file.xml" os.path.join("C:\\user\......

yy.mailb
2012/12/25
1K
9
代码详解:Python虚拟环境的原理及使用

依附之门:“放弃进入这里的所有希望。” 插图:Gustave Doré Python的虚拟环境极大地方便了人们的生活。本指南先介绍虚拟环境的基础知识以及使用方法,然后再深入介绍虚拟环境背...

急速奔跑中的蜗牛
07/02
0
0
【代码】Pythonの代码片段

实用方法 Pythonの清理文件及文件夹 Pythonの获取Gravatar头像地址 Pythonの获取beautifulphoto随机某图片 2) 排序算法 2.1) 比较排序 Pythonの插入排序 Pythonの合并排序 Pythonの冒泡排序 ...

加壹
2013/05/19
821
1
The Python Tutorial 之 Whetting Your Appetite

如果你经常性的需要用计算机去做一些事情,这些事情中大部分情况可能是经常重复性的或者是枯燥的,最终(eventually)你会想让这些任务(task)实现自动化(automate)。例如,你可能希望在一...

Koma
2015/02/28
115
2
Python开发环境配置 Vim + Ctags+ TagList

在 Linux 下对 vim 进行一些配置,使之支持如下特性: 1. 加强的 Python 语法高亮显示; 2. 对脚本、项目生成 ctag 序列; 3. 在 vim 中显示 ctag 序列列表; 4. Python 函数、类的自动补全;...

AlphaJay
2012/08/03
4.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.4K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
41
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部