python os模块使用

os模块提供了很多对系统直接操作的方法,实现对目录的操作。

例如

import os

os.mkdir("root")#创建一个root目录,但不能联级创建

os.makedir('/a/b/c')#可以级联创建相当于linux中的mkdir -p

os.rmdir(目录)#删除目录,不能删除有内容的目录

os.removedirs(目录)#强制删除目录

os.listdir('.')#获取当前目录列表,已列表的方式返回os.listdir('/')获取根目录下的目录文件

os.getcwd()#获取当前路径

os.chdir(路径)#切换目录,相当于cd

os.isdir(PATH)#判断是否为目录

目录遍历os.walk(path))#会返回一个元组,其中里面有3个元素,这3个元素分别表示每次遍历的路径名,

目录列表,和文件列表

>>> os.getcwd()
'/daixiangzi/code/dir_123'
>>> g=os.walk(os.getcwd())#返回的是一个元组(元组不可改变)
>>> g.next()
('/daixiangzi/code/dir_123', ['dir_2', 'dir_3'], ['file1'])#(路径名,当前路径下目录,当前路径下面的文件)
>>> g.next()
('/daixiangzi/code/dir_123/dir_2', [], ['3', '3.3', '2', '2.2', '1'])
>>> g.next()
('/daixiangzi/code/dir_123/dir_3', [], [])
>>> g.next()

某个目录下所有文件的绝对路径:

>>> os.getcwd()
'/daixiangzi/code/dir_123'
>>> g=os.walk(os.getcwd())

>>> for path,dir,filelist in g:#这里是一个技巧,元组拆分赋值
...     for filename in filelist: #对文件列表的文件进行遍历
...             os.path.join(path,filename)
...
'/daixiangzi/code/dir_123/dir_2/3'
'/daixiangzi/code/dir_123/dir_2/3.3'
'/daixiangzi/code/dir_123/dir_2/2'
'/daixiangzi/code/dir_123/dir_2/2.2'
'/daixiangzi/code/dir_123/dir_2/1'


异常处理

try:

except 错误类型,msg:   #其中msg是接收了错误信息

语句

错误类型:

NameError:尝试访问一个未申明的变量

ZeroDivisionError:除数为0

SyntaxError:语法错误

IndexError:索引超出范围

KeyError:字典关键字不存在

IOError:输入输出错误

AttributeError:访问未知对象属性

ValueError:数值错误

TypeError:类型错误

AssertionError:断言错误

MemoryError:内存耗尽异常

NotImplementedError:方法没实现引起的异常


例子:

try:
        open('dad')
except IOError,msg:
        print msg

except  NameError ,e:

  print "ok"

finally: #(不管是否有异常,下面的语句都要执行)

print "hello"

抛出异常raise

raise TypeError("nothing!!!!")



你可能感兴趣的:(python)