python学习day10笔记
2021/6/9 22:23:54
本文主要是介绍python学习day10笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今日内容
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 time time.strftime("%Y-%m-%d %H:%M:%S") # 显示当前时间 %年%月%日 %时:%分:%秒 # 记录日志 import time with 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 os with 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值到max2 res = 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.import import 文件名 # 导入文件模块 文件名.需要用的代码 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 random random.random() # 随机取0-1之间的小数 float random.randint(1, 3) # 随机取[0]-[1]之间的数 int random.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位的A chr(90) # 得到对应字符编码表中90位的Z ord('A') ord('Z') # 与上相反
这篇关于python学习day10笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器