day 3 文件操作 高效读取文件 修改文件 非空即真 json模块 函数(definition)
一、文件基本操作 二、高效读取文件 三、修改文件 四、非空即真 五、json模块 六、函数
一、文件基本操作 (文件指针seek(0)当前文件指针位置f.teel() 如果f.write('kskk') 文件中没内容,执行下f.flush() 刷新缓冲区把内存缓冲区的内容直接写到磁盘里)
with open('a.txt',encoding='utf-8') as f1,open('b.txt','w',encoding='utf-8') as f2: (这种方法可以自动关闭文件,可同时打开多个文件)
1.读文件(读不存在的文件会报错)
2.写文件(写之前会清空文件)
3.a 追加,但不会 清空以前的内容
4.R+ 读写 (此时文件指针位置在开始位置) W+ 写读 (执行该操作后先清空文件) A+ 追加读模式(文件指针位置在最后面)
二、1.高效读取文件(for line in f )在python中把每行文件读取后有有换行符,在python中打印出来,读的时候在换行后再另起一行
2.监控服务器日志练习(注意每过一分钟,文件指针的位置)
三、修改文件 (文件的修改 两种方法,第一种适合大文件,第二种,适合小文件)
第一种是逐行循环修改
四、非空即真,非0即真
五、1.json模块(json.dumps(d,ensure_ascii= False,indent =4)有中文显示中文 控制缩进) (json.loads()json转换为字典)
2.(json.dump(d,f,ensure_ascii= False,indent =4) 直接操作文件把字典d转换成json串写入文件中,不用再读取文件操作)(而d = json.load(f) 直接操作文件,把json串读取后转成字典)
六、函数 definition(就是把一段代码封装起来,函数调用才执行)
{1.函数返回多个值时返回元组 d函数 return a,b,c a,b,c = d 2.函数不写返回值,返回none 3.函数里遇到return函数立即结束 4.在函数定义全局变量 global a a=5。一个变量在函数中,优先使用函数中的变量} 常量 全用大写字母定义 (定义后不想让改 PI =3.14)
1.函数的定义,调用,返回值,传参,全局变量
2.函数调用才执行,不调用不执行
函数的参数 def d(file,c=None)c的值不传的话,默认传None ,传的话用传的值。 传参是可以对应传参,也可传参时赋值。也可以两者混合用但是对应的应先写。
常量就是一个不会变的变量,一般用大写字母定义。
func_map = { '1':add,'2':update,'3':delete,'4':show,'q':quit }
for i in range(4):
choice = input('1、add 2、update 3、delete 4、show q 退出:\n').strip()
if choice in func_map:
func_map[choice]()
else:
print('输入有误!') 写选择的时候,可以先把写在字典中,然后调用字典中的值,间接调用函数。 函数即变量