一、模块和包
1.命名空间
有3类命名空间,分别为内建命名空间,全局命名空间,局部命名空间。内建命名空间在Python解释器启动时创建,全局命名空间在该模块被导入时创建,他俩都会 一直保持到解释器退出。局部命名空间在函数被调用时创建,返回或引发异常时删除。
2.模块
把一组相关的名称,函数,类或者他们的组合组织到一个文件中。文件是物理层上组织模块的方法。一个文件被看做一个独立的模块。
导入模块:
import module1
import module2 或者
import module1,module2
当出现导入模块失败时,可能的原因是模块不在搜素路径里,从而导致了路径搜素的失败。
import sys
sys.path.append('包存储路径')
或者设置PYTHONPATH环境变量
还可以导入指定函数或者模块。
from module import name1,name2
如果需要把指定模块的所有属性都导入到当前名称空间可使用
from module import *
可使用 import Mymodule as mm 来指定局部绑定名称。
模块导入的特性:
1)载入时执行模块
2)一个模块无论被导入多少次,都只会加载一次。
二、异常
1. try ...except语句
try:
<需要执行的程序代码>
except 异常类1[,异常信息变量]:
<异常时执行的代码>
except 异常类2[,异常信息变量]:
<异常时执行的代码>
2.try ...except...else语句
使用与1相似,只是try语句没有发生异常时,程序跳过所有的except执行else子句中的代码。
3.try ...except...finally语句
使用与1相似,无论是否发生异常,finally中的语句肯定会被执行。
4.抛出异常 raise 异常类[,异常参数]
5.自定义异常,必须继承Exception或者BaseException
class UserInfoError(Exception):
def __init__(self,code,message):
self.code=code
self.message=message
def __str__(self):
errorJsonInfo = '{"code":"%d","message":"%s"}' %(self.code,self.message)
return errorJsonInfo
三、文件
1.打开,可以使用open 或者file内建函数打开 open(filename,accessmode='r',buffering=-1),accessmode表示打开的模式,可选参数为‘r’,‘w’,‘a’等。buffering表示缓冲方式,0表示不缓冲,1表示只缓冲一行数据,大于1 的表示缓冲区大小,0表示不缓冲。
例如:
file1=open('1.jpg','rb')
2.关闭 使用close()函数关闭文件
3.读写
1)文件的读取,分别是read(),readline(),readlines()
read([size]):有一个可选参数size,表示读取前size个长度的内容。参数不指定或指定负值,将读取文件的所有内容。
readline([size]):这个size与read函数的不同,他是指读取指针指定行的前size个字节的长度。
readlines():一次性读取当前位置指针指向处后面的所有内容,函数返回的是一个每行数据组成的一个列表。
2)写入,使用write()函数和writelines函数
write:把一个字符串写入到文件中
WriteLines:把列表中的字符串内容写到文件中
3)文件的定位
fileRef.seek(offset,startpoint=0),startpoint用0,1,2代替,0表示文件开始,1表示当前位置,2表示文件末尾,默认为0.offset表示以startpoint为基点,往后移动的字节数
fileRef.tell():得到位置指针的当前位置,相对于文件开头的位移量。