文件内光标的移动
1.
read在文本模式下,括号内的数字表示的是读取指定的字符个数
with open(r'1.txt','r',encoding= 'utf8') as f: print(f.read(5)) print(f.read(3))
read在二进制模式下,括号内的数字表示的是读取指定的字符
unicode所有的字符都是用2bytes来表示起步
utf8中文用3bytes来表示,英文用1bytes来表示
2.控制光标的移动
seek()函数是Python中操作文件游标移动操作的函数
用法如下
seek(offset,whence=0)
offset:开始的偏移量,也就是代表需要移动偏移的字节数
whence:给offset参数一个定义,表示要从哪个位置开始偏移;
0代表从文件开头开始算起,支持文本模式和二进制模式
1代表从当前位置开始算起,只支持二进制模式
2代表从文件末尾算起,只支持二进制模式
with open(r'1.txt','r',encoding='utf8') as f: print(f.read()) f.seek(3,0) print(f.read())
文件修改
硬盘上的数据有两个状态:占有态和自由态
我们删除数据其实就是将数据原来的位置标记为自由态,当有新的数据加进来落在自由态上,就会覆盖掉原来的数据
文件修改方式一:
实现思路:将文件内容一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件
优点:在文件过程中同一份数据只有一份
缺点:过多占用内存
with open('1.txt', mode='r', encoding='utf-8') as f: data = f.read() with open('1.txt', mode='w', encoding='utf-8') as f: f.write(data.replace('我是穷屌','我想要赚钱搬到市中心'))

文件修改方式二:
实现思路:以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完再写入临时文件...,
删掉原文件,将临时文件重命名原文件名
优点:不会过多占用内存
缺点:在文件修改过程中同一份数据存了两份
import os with open('1.txt','r',encoding='utf8') as read_f, open('.1.txt.swap','w',encoding='utf8') as write_f: for line in read_f: write_f.write(line.replace('哈哈哈','嘻嘻嘻')) os.remove('1.txt') #删除文件 os.remove('.1.txt.swap','1.txt')#重命名文件
函数简介
函数是python为了代码最大程度地重用和最小代码冗余而提供的基本数据结构。 函数是一种设计工具,可能将复杂的程序,分解成可以管理的块。
为什么要使用函数?
1.减少代码量
2.保持一致性
3.易维护
函数其实就相当于工具,提前定义好可以反复使用
len是python解释器提前给我们写好的函数(工具)
我们只需要拿来使用即可,这种类型的函数称之为内置函数,我们自己写的函数称为自定义函数。
函数的语法结构
函数定义语法结构
def 函数名(参数)
#内部代码
return 返回值
1.def
定义函数的关键字
2.函数名
函数名类似于变量名,指代函数体代码,命名与变量名一致
3.括号
定义函数的时候,函数名后面肯定要先挂括号
4.参数
使用函数的时候,给函数内部传递的数据,可以不写或单个、多个
5.冒号
定义函数要也需要缩进的代码块
6.函数的注释
用于解释函数的主要功能、使用方法等说明性文字
7.函数体代码
函数的核心功能,也是我们编写的核心
8.return
后面跟什么,那么函数执行完后就返回什么
定义函数需要用del关键字
定义函数的过程不会执行函数代码 只会检测语法
def index():
gsafdgj 定义的时候不会报错
def index():
if 语法错误定义的时候就会报错
调用函数需要使用函数名
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)