您的位置:首页 > 编程语言 > Python开发

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

2017-10-23 20:07 609 查看
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() //从上面的基础上把所有的
a658
都读出来


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一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: