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/TestDictTest1
dir:[]
file:['output_file.txt']
path:c:/Python34/TestDictTest2
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/TestDictTest1
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/TestDictTest1
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/TestDictinput_file.jpeg
c:/Python34/TestDictTest2input_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)
这个场景主要发生在服务器经常系统生产某些文件,而这些文件的后缀名错了,需要改过来
就说到这里,谢谢大家
------------------------------------------------------------------
版权声明:本文为博主原创文章,未经博主允许不得转载。