一、简述文件操作
文件操作是通过将存在硬盘中的文件调用至内存,人通过操作系统对内存中的文件数据进行操作。
内存:unicode字符
硬盘:utf-8字符
一般文件数据以unicode字符编码存储是比以utf-8字符编码储存占用空间大的,但是,无论用户输入什么字符存入内存,unicode都可以兼容。同样,硬盘中无论是以什么编码的文件读到内存,都可以兼容unicode。
只有unicode编码存在内存中,其余编码都在硬盘里。
(内存中)unicode 二进制字符通过编码(encode)→(硬盘中)utf-8二进制字符
(硬盘中)utf-8二进制字符解码(decode)→(内存中)unicode二进制字符
保证文件不乱码的核心就是,保证用什么编码存就用什么编码取,注意文本编码与解释器码要一致。
补充:
在Python2中,默认的字符编码ascill码,因为当时的unicode码还没有盛行,在Python3中,默认的字符编码是utf-8编码,文件开头以#coding:utf-8,用英文字符。是为了让所有的计算机都可以识别。
pycharm默认的字符编码是:utf-8
window操作系统默认的字符编码是:GBK
打开文件的三种模式
1、 r模式,
只读,如果文件不存在的话会报错
2、w模式
只写,如果文件不存在,则创建一个文件,将内容写入
如果文件存在,则会先将文件里的内容清空,再将内容写进去
3、a模式
如果文件存在,则再内容后面追加内容
如果文件不存在,则创建一个文件,将内容写入
打开文件的语法格式:
with open(r‘带后缀的文件名’,mode=‘打开模式’,encoding='文件的编码格式')as f :
r :用来转义‘带后缀的文件名’路径中的转义字符
带后缀的文件名 :可以是绝对路径,也可以是相对路径
文件编码格式 :与打开的文件编码模式一致即可
f :文件对象的建成,便于后面使用
举例说明文件操作模式使用
r模式:
with open('a.txt',mode='r', encoding ='utf-8') as f: print(f.readable()) #判断文本是否可以读取 print(f.read()) #读所有 print(f.readline()) #执行一次,打印一次 print(f.readlines()) #执行一次,打印所有行内容,返回的是列表
w模式:
#w只写模式:在文件不存在时会创建空文档,文件存在会清空文件,文件指针会跑到文件开头 with open('b.txt', mode ='w',encoding='utf-8')as f: f.write('你好\n') f.write('我好\n') f.write('大家好\n') #注意: #在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面 #如果重新以w模式打开文件,则会清空文件内容
a模式:
#a只追加写模式:在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾 with open(’c.txt’,mode='a',encoding='utf-8')as f: f.write('44444\n') f.write('55555\n')
打开文件的三种模式
1、 r模式,
只读,如果文件不存在的话会报错
2、w模式
只写,如果文件不存在,则创建一个文件,将内容写入
如果文件存在,则会先将文件里的内容清空,再将内容写进去
3、a模式
如果文件存在,则再内容后面追加内容
如果文件不存在,则创建一个文件,将内容写入
打开文件的语法格式:
with open(r‘带后缀的文件名’,mode=‘打开模式’,encoding='文件的编码格式')as f :
r :用来转义‘带后缀的文件名’路径中的转义字符
带后缀的文件名 :可以是绝对路径,也可以是相对路径
文件编码格式 :与打开的文件编码模式一致即可
f :文件对象的建成,便于后面使用
举例说明文件操作模式使用
r模式:
with open('a.txt',mode='r', encoding ='utf-8') as f: print(f.readable()) #判断文本是否可以读取 print(f.read()) #读所有 print(f.readline()) #执行一次,打印一次 print(f.readlines()) #执行一次,打印所有行内容,返回的是列表
w模式:
#w只写模式:在文件不存在时会创建空文档,文件存在会清空文件,文件指针会跑到文件开头 with open('b.txt', mode ='w',encoding='utf-8')as f: f.write('你好\n') f.write('我好\n') f.write('大家好\n') #注意: #在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面 #如果重新以w模式打开文件,则会清空文件内容
a模式:
#a只追加写模式:在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾 with open(’c.txt’,mode='a',encoding='utf-8')as f: f.write('44444\n') f.write('55555\n')