[python自学笔记]匿名函数和文件处理、异常

1、lambda表达式就是一个匿名函数,在python中的lambda表达式的写法就是lambda+空格+参数列表+冒号+返回值。比如lambda x,y:x+y就相当于如下的代码

def sum(x,y):
    return x + y

2、在python的函数中还可以把匿名函数作为参数来使用,这个和JavaScript有异曲同工之妙,比如

def test(a,b,func):
    result = func(a,b)
    return result

def main1():
    nums = [{
    "name":"zhangs","age":20},{
    "name":"wzhangs","age":30},{
    "name":"2zhangs","age":2}]
    nums.sort(key=lambda x:x['age'])
    print(nums)

def main():
    nums = test(10,20,lambda x,y:x+y)
    print(nums)

if __name__ == '__main__':
    main()

3、文件处理
  首先说几个英文,read(读)、write(写),bit(二进制),append (追加)
  3.1、文件的打开:f = open(filename,type)
  filename是文件路径,type是打开方式,”r”,”w”,”a”,”rb”,”wb”,”ab”,”r+”,”w+”等等,r代表读,且文件指针指向开头,并且文件必须存在,不存在就会报异常,w代表写,文件指针指向开头,文件不存在的话会创建一个,a代表文件指针指向最后追加内容。带加号的代表可读可写。
  3.2、文件的关闭:f.close()
  3.3、文件的读写:

f = open("test.py","r")
t1 = f.read(2)//读两个
t2 = f.read(3)//从上面读两个的基础上再读3个
t2 = f.readline() //读一行
t3 = f.read() //从上面的基础上把所有的都读出来
f = open("test.py","w")
num = f.write("hello\nworld") // 向文件写一个字符串,并把长度返回

  3.4、改变文件的文件指针

filename = "d:/demo.py"
type = "r"
f = open(filename,type)
f.seek(2,0) // 第二个参数为0代表文件开头,1代表当前位置,2代表文件结尾 第一个参数代表偏移量,正数是往右,负数反之,但是python3不支持负数
content = f.readline()
print(content)
position = f.tell() // 返回文件指针的位置
print(postion)

  3.5、其它文件操作,需要import os

rename(oldname,newname) //重命名
remove(filename) //删除文件
mkdir(dirName) //创建文件夹
rmdir(dirName) //删除文件夹
getcwd() //获取当前工作目录
chdir(dirName) //改变当前目录,以下所有代码的当前目录就是这个目录了
listdir('./') //返回目录列表

4、异常 (在Java叫Exception,java的处理方式是try…catch…finally,python是try…except…finally)
  比如说只读打开一个文件,文件不存在,会报FileNotFoundError异常,为了捕捉异常,应该采取下面的写法
  

try:
    filename = "d:/demo.py"
    type = "r"
    f = open(filename,type)
except FileNotFoundError as fnfr:
    print("文件不存在")
finally:
    print("hello")

  抛出异常的关键字是raise,在java中是throw。Exception是所有异常的类的父类,这个和Java一样。

你可能感兴趣的:(python,python)