Dive in Python学习笔记六:异常和文件处理
异常处理
Python 使用try...except 来处理异常,使用raise 来引发异常。
技巧:异常的用途
在标准Python 库中一个普通的用法就是试着导入一个模块,然后检查是否它能使用。导入一个并不存在的模块将引发一个ImportError 异常。你可以使用这种方法来定义多级别的功能――依靠在运行时哪个模块是有效的,或支持多种平台(即平台特定代码被分离到不同的模块中)。
你也能通过创建一个从内置的Exception 类继承的类定义你自己的异常,然后使用raise 命令引发你的异常。
一个try...except 块可以有一条else 子句,就像if 语句。如果在try 块中没有异常引发,然后else 子句被执行。
与文件对象共事
打开文件
>>>f = open("/music/_singles/kairo.mp3", "rb")
open 方法可以接收三个参数:文件名、模式和缓冲区参数。只有第一个参数(文件名) 是必须的;其它两个是可选的。
读取文件
>>>f.seek(-128, 2)
>>>tagData = f.read(128)
1. 文件对象的seek 方法在被打开文件中移动到另一个位置。第二个参数指出第一个参数是什么意思:0 表示移动到一个绝对位置(从文件起始处算起),1 表示移到一个相对位置(从当前位置算起),还有2 表示相对于文件尾的位置。
2. read 方法从被打开文件中读取指定个数的字节,并且返回含有读取数据的字符串。可选参数指定了读取的最大字节数。如果没有指定参数,read 将读到文件末尾。
关闭文件
>>>f.closed 获取文件f的关闭状态
>>>f.close() 关闭文件
写入文件
有两种写入模式:
1. 追加(Append)模式
将数据追加到文件尾
2. 写入模式
将覆盖文件原有内容
如果文件还不存在,任意一种模式都将自动创建文件
for循环
遍历列表
>>>li = ['a','b','c']
>>>for s in li: print(s)
遍历字典
>>> import os
>>> for k, v in os.environ.items():
print("%s=%s" % (k, v))
使用sys.modules
sys.modules 是一个字典,它包含了从Python 开始运行起,被导入的所有模块。键字就是模块名,键值就是模块对象。
__module__类属性
每个Python 类都拥有一个内置的类属性__module__,它定义了这个类的模块的名字。
与目录共事
构造路径
>>>import os
>>> os.path.join("c:\\music\\ap\\", "mahadeva.mp3")
'c:\\music\\ap\\mahadeva.mp3'
说明:os.path 的join 函数把一个或多个部分路径名连接成一个路径名。
>>> os.path.expanduser("~")
'c:\\Documents and Settings\\mpilgrim\\My Documents'
说明:expanduser 将对使用~ 来表示当前用户根目录的路径名进行扩展。
分割路径名
>>> os.path.split("c:\\music\\ap\\mahadeva.mp3")
('c:\\music\\ap', 'mahadeva.mp3')
说明:split 函数对一个全路径名进行分割,返回一个包含路径和文件名的tuple。
分割文件名和后缀
>>> (shortname, extension) = os.path.splitext('mahadeva.mp3')
>>> shortname
'mahadeva'
>>> extension
'.mp3'
说明:splitext 函数对文件名进行分割,并且返回一个包含了文件名和文件扩展名的tuple。
列出目录
>>> os.listdir("c:\\music\\_singles\\")
['a_time_long_forgotten_con.mp3', 'hellraiser.mp3','kairo.mp3', 'long_way_home1.mp3', 'sidewinder.mp3', 'spinning.mp3']
说明:listdir 函数接收一个路径名,并返回那个目录的内容的list。包括文件和文件夹。
>>> import glob www.zzzyk.com
>>> glob.glob('c:\\music\\_singles\\*.mp3')
['c:\\music\\_singles\\a_time_long_forgotten_con.mp3','c:\\music\\_singles\\hellraiser.mp3']
>>> glob.glob('c:\\music\\*\\*.mp3') #获取music目录下所有子目录下的MP3文件
说明:glob函数接受一个通配符并且返回文件的或目录的完整路径与之匹配
摘自 蓝猫的专栏
补充:Web开发 , Python ,