文件的使用
一、文件类型
文本文件:文件是数据的抽象和集合
由单一特定编码组成的文件,如: UTF-8编码
二进制文件:直接由0或1组成,没有统一字符编码
二、打开和关闭
步骤: 打开-操作-关闭
语法 : <变量名> = open(<文件名> #文件路径和名称 , <打开模式> 文本or 二进制 读 or 写)
打开模式 :‘r’ # 只读模式,默认值,如果文件不存在,返回FileNotFoundError
‘w’ #覆盖写模式,文件不存在则创建,存在则完全覆盖
‘x’ #创造写模式,文件不存在则创建,存在返回 FileExistsError
‘a’ # 追加写模式,文件不存在则创建,存在则在文件最后最加内容
‘b’ #二进制文件模式
‘t’ #文本文件模式,默认值
‘+’ #与r/w/x/a一同使用,在原功能上同时读写功能
例子:
f = open("xx.txt") #m默认 文本形式,只读打开
f = open("f.txt","rt") #同默认值
关闭:<变量名>.lose()
三、内容读取
<f>.read(size=-1) #读取文件全部内容,如果给出参数,读入size长度
<f>.readline(size-1) #读入一行,如果给出参数读取前size长度
<f>.readlines(hint=-1) #读入文件所有行,以每行元素形成列表,如果给出参数读入前hint行
1.文件全文本操作
遍历
fname = input("请输入打开文件的文件名称:")
fo = open(fname,'r')
txt = fo.read() #一次读入统一处理
fo.close()
当遍历文本数据大
按数量读入,逐步处理
fname = input("请输入要打开的文件:")
fo = open(fname, 'r')
txt = fo.read(2) #一次读入两个字节
while txt !='': #当读入txt不为空时就一直循环
txt = fo.read(2)
fo.close()
逐行遍历文件
#一次读入分行处理
fname = input("请输入要打开的文件名称:")
fo = open(fname, 'r')
for line in fo.readlines(): #逐行读取,fo.readlines()以行的方式生成列表每行是列表一个元素
print(line)
fo.close()
#分次读入
fname = input("请输入要打开的文件:")
fo = open(fname, 'r')
for line in fo:
print(line)
四、文件写入
<f>.write(s) #向文件写入一个字符串或字节流
<f>.writellines(lines) #将一个元素,全为字符串的列表,拼接写入文件成一行
<f>.seek(offset) #改变当前文件操作指针位置,offset含义如下:0 - 文件开头;1 - 当前位置; 2 - 文件结尾