Python基础篇(9)---文件操作补充和初识函数
本章内容
• 文件的光标移动
• 文件的修改
• 初识函数
文件光标的移动
1.提前需知
# 文件内指针的移动都是Bytes为单位的,除了t模式下的read(n),n以字符为单位 with open('a.txt', 'rt', encoding='utf-8') as f: data = f.read(3) # 读取3个字符 print(data) with open('a.txt','rb') as f: data=f.read(3) # 读取3个Bytes print(data.decode()) ''' 注意事项: 1.read在文本模式下 括号内的数字表示的是读取指定的字符个数 2.read在二进制模式下 括号内的数字表示的是读取指定的字节数 3.unicode所有的字符都是用2bytes来起步表示 4.utf8中文用3bytes来表示 英文用1bytes来表示 往后unicode可以不做研究 只研究utf8、gbk等编码即可 '''
2.控制光标的移动
1 2 3 4 5 6 7 8 | seek方法可以控制光标的移动 在文本模式下移动的单位也是字节数 seek方法有3个模式 语法seek(offset,whence) offset控制移动的位数,whence选择模式 模式1:0模式--默认 seek(n,0) # 从文件开头向后移动n个字节 支持文本模式和二进制模式 模式2:1模式 seek(n,1) # 从当前位置向后移动n个字节 只支持二进制模式 模式3:2模式 seek(-n,2) # 第一个值一般为负数,从文件的末尾向前移动n个字节 只支持二进制模式 |
文件的修改
文件对应的是硬盘空间,我们不能直接对硬盘操作实现修改文件,而是将硬盘中的文件读到内存,然后在内存中完成修改最后在翻盖到硬盘中。
文件修改的方式一
# 实现思路:以占用电脑内存的方式,将文件读取到内存中修改再存回硬盘。 # 优点:在文件修改过程中同一份数据只有一份 # 缺点:会占用过多的内存 with open('a.txt','rt',encoding='utf-8') as f: data=f.read() with open('a.txt','wt',encoding='utf-8') as f: f.write(data.replace('jason','tom'))
文件修改方式二
# 实现思路:分别打开和新建一个文件,修改文件后写入到新的文件中,直接保存到硬盘,即占用硬盘的方式 # 优点:不会占用过多的内存空间 # 缺点:文件修改过程中同一份文件存了两份 import os with open('a.txt','rt',encoding='utf-8') as read_f,\ open('.a.txt.swap','wt',encoding='utf-8') as wrife_f: for line in read_f: wrife_f.write(line.replace('jason','kevin')) os.remove('a.txt') # 删除文件 os.rename('.a.txt.swap','a.txt') # 重命名文件
初识函数
函数就是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,简单的理解就是工具。
我们使用的使用的len()也是函数,不过是python已经封装好的函数,我们将这些已经封装好的函数称为内置函数。
当然我们想要的功能函数python不可能全部都有,这个时候就需要我们自己去写函数,我们自己写的函数就称为自定义函数。
def 函数名(参数1,参数2,...): """函数的功能注释或者说明""" 函数体 return 值
1 2 3 4 5 6 7 | def:定义函数的关键字; 函数名:类似于变量名,是对函数体代码的引用,函数的命名应该能够体现函数的功能; 括号:是定义函数时,在函数名后面必须加的,参数可有可无,根据需要写参数; 冒号:在括号后要加冒号,表示缩进函数体的代码; 函数的注释:主要用于解释函数的功能、使用方法等具有说明性的文字,增强函数的可读性; 函数体:由语句和表达式组成,是函数核心功能的编写区域; return :定义函数的返回值,可有可无。 |
''' 1.定义函数的过程不会执行函数体代码 只会检测语法 语法错误定义的时候就会报错 2.调用函数需要使用函数名加括号 '''
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人