python学习day10笔记

python学习day10笔记,第1张

概述今日内容1.控制文件指针移动'''f.seek移动的全都是字节个数f.seek(字节个数,0)0代表开头,在t,b下使用f.seek(字节个数,1)1代表当前位置,在b模式下使用f.seek(字节个数,2)2代表末尾,在b模式下使用快速移动到末尾f.seek(0,2)'''f.tell()#告诉你文件指针位置距离开 今日内容1.控制文件指针移动
'''f.seek移动的全都是字节个数f.seek(字节个数, 0)0代表开头,在t,b下使用f.seek(字节个数, 1)1代表当前位置,在b模式下使用f.seek(字节个数, 2)2代表末尾,在b模式下使用快速移动到末尾 f.seek(0, 2)'''f.tell()  # 告诉你文件指针位置距离开头多少个字节# 如何读取中间到末尾的字节f.seek(x, 0)f.read()tail -f 文件路径  # 观察文件新的内容进来import timetime.strftime("%Y-%m-%d %H:%M:%s")  # 显示当前时间 %年%月%日 %时:%分:%秒# 记录日志import timewith open('access.log', mode='at', enCoding='utf-8') as f:    f.write("%s 张三 200.103.110.22 ok \n" % time.strftime("%Y-%m-%d %H:%M:%s"))    # 实时记录with open('access.log', mode = 'rb') as f:    f.seek(0,2)    while True:        line = f.readline()        if len(line) == 0:            continue        else:            print(line.decode('utf-8'),end = '')
2.文件修改的两种方式
'''文件修改共同原理把硬盘数据读入内存,在内存修改完毕后,在覆盖回硬盘具体分两种方案'''# 方案一,将文件内egon改成大写EGON# 缺点:源文件过大不适合用,对内存有要求,同时费内存# 优点:对硬盘没有要求# 文件全部读到内存,修改完了覆盖回文件with open('test.txt',mode='rt',enCoding='utf-8') as f:    date = f.read()  # 将数据存到内存,变量date中with open('test.txt',mode='wt',enCoding='utf-8') as f:    f.write(date.replace('egon','EGON'))    # 方案二,将文件内EGON改成小写egon# 缺点:对硬盘有要求,生成临时文件之前硬盘要预留足够的空间# 优点:对内存没有要求# 新建一个文件,从旧文件一行一行修改写到新文件import oswith open('test.txt',mode='rt',enCoding='utf-8') as f1,\open('.test.txt.swp',mode='wt',enCoding='utf-8')as f2:    for line in f1:        f2.write(line.replace('EGON','egon'))os.remove('test.txt')os.rename('.test.txt.swp','test.txt')
3.函数
'''1.什么是函数	函数就是盛放功能(一系列代码)的容器	定义函数就是造出了一个工具		实现准备工具的过程->函数的定义	遇到应用场景拿来就用->函数的调用2.为何要用函数	不用函数写出的代码问题是:		1.程序的组织结构不清晰,可读性差,可维护性差		2.程序的可扩展性差3.如何用函数	原则:		先定义		后调用'''# 定义函数定义函数的语法:	def 函数名(参数1,参数2,参数3,...):  # 函数名 = 函数的内存地址		# 写文档注释信息    	代码1    	代码2    	代码3    	最后可以加 return 返回值    	# 函数名通常是动词,命名规则与变量名一样# 就是把写好的代码,上面加上def,然后代码整体缩进tab'''函数定义阶段发生的事:申请内存空间,把函数体代码放进去,然后把内存地址绑定给函数名。函数定义阶段只检测语法不执行代码,只有在调用函数时才会执行函数体代码'''# 调用函数调用函数语法:    函数名(值1,值2,值3)'''函数调用阶段发生的事:执行函数体代码'''# 函数的参数:形参与实参s1 = 'hello world'调用函数时传递的这个“hello world”被称为实际参数因为这个是实际的要交给函数的内容,简称实参定义函数时的s1,只是一个变量的名字,被称为形式参数因为在定义函数的时候它只是一个形式,表示这里有一个参数,简称形参# 函数的返回值def max2(sal1,sal2):    if sal1>sal2:        return sal1  # 返回sal1值到max2    else:        return sal2  # 返回sal2值到max2res = max2(1000,2000)  # res等于max2(值,值)的返回值'''函数内可以有多个返回值return但只要执行一次,整个函数就立即结束并且将return后的值当作本次调用的产品返回具体来说函数的返回值有三种形式1.return 值:返回的就是改值本身2.return 值1,值2,值3:返回的是小元组3.没有return\return后无值\return None:默认返回None'''
4.模块
'''1.什么是模块	模块是一系列功能的集合体		模块分为四种通用的类别		1.使用python编写的.py文件  # 只需要了解这个		2.已被编译为共享库或DLL的C或C++扩展		3.把一系列模块组织到一起的文件夹(注:文件夹下有一个_init_.py,该文件夹称之为包)		4.使用C编写并链接到python解释器的内置模块			模块有三种来源:		1.python自带的模块/库			内置模块			标准库		2.第三方的库			开源		3.自定义库			自己写			2.为何要用模块	拿来主义,提升开发效率	减少代码冗余	3.如何用模块	import	from...import...'''1.importimport 文件名  # 导入文件模块文件名.需要用的代码2.from...import...from 文件名 import 需要的代码
5.常用模块
1.time模块import time# 时间戳print(time.time())  # 距离1970年1月1日有多少秒# 格式化的字符print(time.strftime('%Y-%m-%d %H:%M:%s'))年-月-日 时:分:秒# 结构化的时间time.localtime()a = time.localtime()print(a.tm_year)  # 输出年time.gmtime()  # utc时间2.random模块import randomrandom.random()  # 随机取0-1之间的小数 floatrandom.randint(1, 3)  # 随机取[0]-[1]之间的数 intrandom.randrange(1, 3)  # 随机取[0]-[1]之间的数,顾头不顾尾random.choice([11,'aa',333])  # 随机列表内取一个值random.sample([11,'aa',333],2),  # 随机列表内取[1]个值random.uniform(1, 3)  # 随机取[0]-[1]之间的小数item=[1, 3, 5, 7, 9]random.shuffle(item)  # 打乱item顺序# 储备知识chr(65)  # 得到对应字符编码表中65位的Achr(90)  # 得到对应字符编码表中90位的Zord('A')ord('Z')  # 与上相反
总结

以上是内存溢出为你收集整理的python学习day10笔记全部内容,希望文章能够帮你解决python学习day10笔记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1184963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存