python储存文件函数_Python 文件修改-函数介绍

上节课复习:

1.字符编码

1.1 如何解决乱码问题:

字符存取使用的编码标准不一致

1.2 文件头

在文件的首行写入文件头,用于控制Python解释器读取py文件内容时使用的编码

#coding:文件存入硬盘时使用的编码标准

ps:如果不指定文件头

Python2默认使用ASCII

Python3默认使用UTF-8

1.3 关于字符串类型(只在运行Python程序的第三个阶段才有字符串的概念)编码的问题

Python3中的字符串类型str/字节串bytes类型:

str======>Unicode

x="上" #把"上"存成Unicode格式的二进制

bytes:

res=x.encode("GBK") #Unicode ------编码-------> gbk

res.decode("GBK") #gbk--------解码--------->Unicode

Python2中的字符串类型str/Unicode类型:

str===>文件头指定的编码格式存放的

#coding:GBK

x="上" #把"上"存成GBK格式二进制

Unicode

#coding:gbk

x=u"上" #把"上"存成Unicode格式二进制

2.文件处理

什么是文件?

1.文件是操作系统提供给用户/应用程序用于间接地操作硬盘的抽象的单位

为何要用文件?

1.为了将应用程序内存的数据永久保存到硬盘

如何用文件?

步骤:

1.打开文件

f = open(r'文件路径',mode='rt',encoding='utf-8')

2.读/写操作

f.read()

f.write()

3.关闭文件

f.close()

控制操作文件内容的两种模式(不能单独使用,必须与r\w\a连用)

t: 读写都是以字符串为单位(默认的),必须制定encoding参数

b: 读写都是以bytes类型为单位的,必须不指定encoding参数

打开文件的三种模式

r:只读模式

w:只写模式

a:只追加写模式

.replace() 方法用于在字符串中用一些字符替换成另一些字符,或替换一个与正则表达式匹配的子串。

今日内容:

1.控制文件内指针的移动

f.seek()

f.seek(offset,whence)有两个参数:

offset: 代表控制指针移动的字节数

whence:代表参照什么位置进行移动

whence = 0:参照文件开头(默认的),特殊???,可以在t和b模式下使用

whence = 1:参照当前所在的位置,必须在b模式下用

whence = 2:参照文件末尾,必须在b模式下用

f.tell() 查看几个字节

f.read(n)

文件内指针移动, 只有t模式下的read(n), n代表的字符的个数

除此以外文件内指针的移动都是以字节为单位

f,truncate(n) 截断文件

2.修改文件的两种方式

方式1:

1.将文件内容由硬盘读到内存

2.在内存中完成修改

3.将内存中修改后的结果覆盖写回硬盘

优点:在文件修改的过程中硬盘上始终一份数据

缺点:占用内存过多,不适用于大文件

方式2:

1.以读的方式打开源文件,以写的方式打开一个临时文件

2.从源文件中每读一样内容修改完毕后写入临时文件,直到源文件读取完毕

3.删掉源文件,将临时文件重命名为源文件

优点:同一时刻在内存中只存在源文件的一行内容,不会过多地占用内存

缺点:在文件修改的过程中会出现源文件与临时文件共存,硬盘上同一时刻会有两份数据,即在修改的过程中会过多地占用硬盘

3.函数相关

函数的定义

1.什么是函数

函数就是具备某一功能的工具

2.为什么要用函数

2.1 程序的组织

3.如何用函数

函数的使用必须遵循的原则:先定义,后调用

修理工事先准备工具的过程即函数的定义

修理工遇到应用场景拿来工具就用即函数的调用

def:定义函数的关键字

函数名:就相当于一个变量名,指向函数的内存地址,

注意:函数的内存地址加()就可以触发函数体代码的执行

函数的调用:

函数的使用分为两个阶段:

定义阶段: 只检测语法,不执行代码

调用阶段: 运行函数体代码

语法:

def 函数名(参数1,参数2,....):

'''

文档注释

:param 参数1:

:param 参数2:

:return:

'''

......

return 返回值

函数的返回值:

return : 函数体代码块运行的成果

函数的参数:

参数就是函数的调用者为函数体代码传值的媒介,在Python中函数的参数无需声明类型

定义时无参数,意味着调用时也无需传入参数

定义无参函数:

当函数体的代码逻辑不依赖任何传入的值就能执行,就不需要定义参数

定义有参函数:

当函数体的代码逻辑依赖于外部调用者传入的值才能执行,必须定义参数用来接收外部传入的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值