Python高级功能之OS模块python
目录操做就是经过Python来实现目录的建立,修改,遍历等功能app
import oside
目录操做须要调用os模块函数
>>> import os工具
>>> os.mkdir('test')spa
1、经常使用函数orm
mkdir(path[,mode=0777])递归
makedirs(name,mode=551) #建立多级目录pdo
>>> os.makedirs('a/b/c')rem
rmdir(path) #删除目录
>>> os.rmdir('test')
removedirs(path) #删除多级目录
>>> os.removedirs('a/b/c')
listdir(path) #查看目录
>>> os.listdir('/')
getcwd() #查看当前路径
>>> os.getcwd()
'/root/python'
chdir(path) #切换目录
>>> os.chdir('/')
>>> os.getcwd()
'/'
walk(top,topdown=True,onerror=None) #递归函数,目录遍历,返回一个元组,该元组有3个元素,这3个元素分别表示每次遍历的路径名,目录列表和文件列表
2、目录遍历(查询目录下的全部文件)
(1)
#!/usr/bin/python
#coding:utf8
import os
allfile = []
def dirList(path):
filelist = os.listdir(path)
for filename in filelist:
filepath = os.path.join(path,filename)
if os.path.isdir(filepath):
dirList(filepath)
else:
allfile.append(filepath)
return allfile
def delFile(allfile):
for fi in allfile:
print fi
dirList('/root/python/testdir')
delFile(allfile)
(2)
#!/usr/bin/python
#coding:utf8
import os
def getList(paths):
for p,dir,filelist in os.walk(paths):
for filename in filelist:
print os.path.join(p,filename)
getList('/root/python/testdir')
3、案例:系统垃圾清除小工具(删除包含‘2’命名的文件,包含‘loyu‘字符的文件)
#!/usr/bin/python
#coding:utf8
import os
import re
def getList(paths):
for p,dir,filelist in os.walk(paths):
for filename in filelist:
filedir = os.path.join(p,filename)
contain = re.findall("2.",filename)
if len(contain)==1:
os.remove(filedir)
else:
openfile1 = open(filedir,'r')
for s in openfile1.readlines():
containchar = re.findall("loyu",s)
if len(containchar)>0:
os.remove(filedir)
getList('/root/python/testdir')