python学习笔记(六)
文件夹遍历
1.递归遍历
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) allfile.append(filepath) return allfile print dirList('.')
2.用os.walk()
os.walk() 返回一个生成器,每个列表有3个元素。各自是,当前文件夹。当前文件夹中的文件夹。当前文件夹中的文件
比如:
import os g = os.walk('.') for i in g: print i
输出:('.', ['tt'], ['1.txt', '111.py', '2.py', '3', '3.py', '4.py', '5.py'])
('.\tt', ['a'], ['34.txt'])
('.\tt\a', [], ['12.txt'])
样例:获取每一个文件名称字
import os g = os.walk('.') for root,dirs,files in g: for filename in files: print os.path.join(root,filename)
异常处理
try...except
样例:try: f() except NameError,msg: print "error"
假设有多个可能的异常,仅仅需在后面再加except语句就可以
try...except...finally
finally后面加的代码一定会运行
样例:try: g() open('aaa.py') except NameError,msg: print "name error" except IOError,msg: print "io error" finally: print 'end'
输出:name error
end
io error不会输出。由于 g()产生的NameError比open('aaa.py')产生的IOError早,它先中断了,后面的代码都没运行。
raise
发出异常
样例:try: raise IOError("noting") except NameError,msg: print "name error" except IOError,msg: print "io error" finally: print 'end'