首页 > 代码库 > python学习笔记(2)

python学习笔记(2)

一、模块和包

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():得到位置指针的当前位置,相对于文件开头的位移量。

python学习笔记(2)