Python高级功能之OS模块
目录操作就是通过Python来实现目录的创建,修改,遍历等功能
import os
目录操作需要调用os模块
>>> import os
>>> os.mkdir('test')
一、常用函数
mkdir(path[,mode=0777])
makedirs(name,mode=551) #创建多级目录
>>> os.makedirs('a/b/c')
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个元素分别表示每次遍历的路径名,目录列表和文件列表
二、目录遍历(查询目录下的所有文件)
(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')
三、案例:系统垃圾清除小工具(删除包含‘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')
转载于:https://blog.51cto.com/8789878/1831238