一、文件操作
文件的操作的底层原理:例如平时我们打开一个记事本,写一些数据并保存好,下次打开这个记事本修改了一些数据,保存关闭后,我们看到的好像是还是这个文件了,其实不然。我们以第一次保存好的文件好比叫做file.txt,我们在打开这个文件的时候,实际上是如何看的呢?是将file.txt的数据都刷到电脑内存中去,然后由内存调用给我们展示出来,当进行文件操作的时候,系统会同时创建一个形如file.txt.swap的文件,这个文件是做什么的呢?实际上是将我们的操作,改动,先从file.txt中读出来,然后修改,再刷到file.txt.swap中,然后保存关闭文件,做了哪些事呢?首先将旧文件file.txt删掉,然后将file.txt.swap文件重命名成file.txt文件再保存在硬盘中,所以此时看到的file.txt已经非彼file.txt了。
在Python中,这是怎么实现的呢?
m1=open(filename,'r',encoding='utf-8')
msg=m1.read
print(msg)
利用open内置函数,调用文件,此时需要几个元素:
1.文件名,(绝对路径或相当路径)
2.动作(即此时是读,读的动作也为默认动作,即使你不写,也是read)
3.字符编码(Python中大多用的是utf-8,此处可参照Python开发之路(二))
现在读实现了,那么写呢?
m2=open(filename.swap,'r',encoding='utf-8')
msg=m1.replace(old,new)
m2.write(msg)
此时就完成了写动作,写动作也需要三个元素:
1.文件名,没有该文件的话,创建。如果已有改文件,那么就清空重写
2.动作(写动作)
3.字符编码
写好了新文件,我们此时将旧文件删除,并重命名新文件,修改完成。
还有一种写方式是'a'
a的写方式是在文件的最后追加数据信息。
综上所述:
r为只读,w为只写,a为追加。
在遇到非文本文件时,例如图片,视频,等等。
此时如果用上述三种方式对文件进行操作会报错,那怎么办呢?
使用rb,wb,ab。由于所有文件都是由字节组成,那么都转化成bytes类型进行操作的话,也就不用考虑字符编码问题了。
文件操作的方法包括:
f.read()读取所有内容,光标移动到最后
f.readline()读取第一行内容,并将光标第二行行首
f.readlines()读取每一行内容,并存在列表中
f.write('abcdefg\nasdasd')直接写文本
f.writelines(['123123\n','asdas\n'])一行一行的写
f.readable文件可读
f.writable文件可写
f.closed文件关闭
seek() 0,1,2 都是以一个bytes单位移动
tell() 看光标目前在哪
二、函数
def 函数名(): #在定义阶段,()内的参数是形参
函数体
函数名() #在执行阶段,()内的参数是实参
定义函数就像定义一个变量,函数定义的时候不执行。
函数分为:内置函数和自定义函数
在定义函数时,如果在函数体中,出现return,那么return下面的就不执行了,并返回return后的值
return 不写或者None 则返回None
return 返回单个数
return 返回多个数是将多个数作为一个元祖的形式返回