这是我参与更文挑战的第22天,活动详情查看:更文挑战
不要去追一匹马,用追马的时间种草,待到春暖花开之时,就会有一批骏马,任你挑选。——屠呦呦
不用刻意去巴结一个人,用自己独处的时间,去努力提升自己,待到时机成熟时,就会有一批朋友与你同行。用人情做出来的朋友只是暂时的,用人格吸引的朋友才能更长久。
总目录:
- 文件的类型
- 文件的打开和关闭
- 文件内容的读取
- 数据的文件写入
PS:关于文件更多的实际操作,一般都以代码形式表示。
一.文件的类型
首先,我们得理解什么是文件:
简单来说,文件是数据的抽象和集合,也可以理解为是存储在存储器上的数据序列,同时也是数据存储的一种形式。
文件展示形态:文本文件和二进制文件(本质上文件都是以二进制文件存储的, 且任何文件都可以以二进制文件形式打开)。
文本文件:由单一特定编码组成的文件,如UTF-8编码。由于存在编码,文本文件也看成是存储着的长字符串。如:.txt文件,.py python源代码文件。
二进制文件:直接由比特0和1组成,没有统一字符编码,一般存在二进制0和1的组织结构,即文件格式。如:.png文件,.avi视频文件等。
打开并读取文件实例:
tf = open("test1.txt","rt")  #以文本文件打开一个test1.txt文件并读取,当rt换成用rb时则是以二进制文件形式打开 
print(tf.readline()) 
tf.close()
复制代码二.文件的打开和关闭
当Python执行文件相关操作时,也和其它编程语言类似,都遵循一定的步骤:打开——操作——关闭。
当文件没有被程序处理时,体现的是以文件形式的存储状态,当我们准备操作文件时,就得使文件变成占用状态,使得程序对文件进行相关处理。
当我们准备打开文件时,使用的是open操作,在关闭时是使用的close操作再对文件进行数据读入和输出,也叫读文件和写文件。
Python也提供了相关文件处理的函数
关于读文件:
a.read(size)
a.readline(size)
a.readlines(hint)
复制代码关于写文件:
a.write(s)
a.writelines(lines)
a.seek(offset)
复制代码To:关于文件读写方法,在数据读写实例中会讲解。
那么打开文件也和其它语言类似,如下:
<变量名>=open(<文件名>,<打开模式>)#文件名包括文件路径和名称(源文件同目录可省路径)
#打开文件的模式再上次也已提到,分为两种模式:文本形式或二进制
             
复制代码关于文件路径打开方式:
切记:我们在Windows平台上的绝对路径通常会有\,但在Python中,\被解析为转义字符。所以,一般用/来替代\。当然,有强迫症的同学可以使用两个\,以达到一个\ 的效果。(\起转义字符的作用)
相对路径:如果某个需要打开的文件在程序的某个盘的根目录下,我们在指定路径时可省略盘符号,比如需要打开的文件在D:PY\a.txt,那么在程序就可写成.PY\a.txt 如果需要打开的文件与程序在同一个目录下,我们就可以省略路径,直接使用a.txt即可。
文件的七种打开模式:
'r' #只读模式,默认值,如果文件不存在,返回File Not Found Error
'w' #覆盖写模式,文件不存在则创建,存在则完全覆盖
'x' #创建写模式,文件不存在则创建,存在则返回File Exists Error
'a' #追加写模式,文件不存在则创建,存在则在文件最后追加内容
'b' #二进制文件模式
't' #文本文件模式,默认值打开文件方式
'+' #与r/w/x/a一同使用,在原功能基础上增加同时读写功能
复制代码实例:当我们在程序目录下创建text1.txt的文本文件
tf = open("test1.txt") #文本形式,只读模式,默认值,也可以使用:
tf=open("test1.txt","rt") #文本模式,只读模式,默认值,r为只读模式,t为文本模式
#即:rt也是默认文件的打开模式 
tf=open("test1.txt","w") #文本模式,覆盖写模式,如果文本不存在,系统则会自动创建一个
f=open("test1.txt","a+") #文本形式,追加写模式+(+号代表可以读取文件信息)读文件(在文件内容的后面加上自己要写入的内容)。
#接上:如果没有+号,则不能从文件中读取信息
f=open("test1.txt","x") #文本形式,创建写模式,x表示如果文件不存在,则会创建一个文件并写入信息,如果文件存在,则会返回异常
f=open("test1.txt","b") #二进制形式,只读模式 是一种只读的二进制方式打开的模式
f=open("test1.txt","wb") #二进制形式,覆盖写模式,可以对文件进行覆盖写
复制代码文件关闭(如果文件未被关闭,当程序如果是正常退出时,Python解释器也会自动关闭这个文件):
<变量名(文件句柄)>.close()
复制代码三.文件内容的读取
上述提到过的三个文件读取的方法:.read   .readline   .readlines
<f>.read(size=-1) #读入全部内容,如果给出参数,读入前size长度
#如:s=f.read(2)
<f>.readline(size=-1) #读入一行内容,如果给出参数,读入该行前size长度
#如:s=f.readline()
<f>.readlines(hint=-1) #读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行
#如:s=f.readlines()
复制代码文件的全文本操作
1.遍历全文件的方法:一次读入,统一处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read()#对全文txt进行处理
fo.close
复制代码但是当文本文件特别大时,比如几百个G,当我们把这些文件信息读入内存时,会特别耗费内存资源
2.按数量逐步读入,逐步处理:
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read(2)#读入两个字节
while txt != "":#对txt文件进行处理
  txt=fo.read(2)
fo.close
复制代码3.逐行遍历处理(更常用)
#一次读入,分行处理(1)
fname=input("请输入要打开的文件名称")
fo=open(fname,"r")
for line in fo.readlines():#遍历文件,文件中的每一行都是一个元素
  print(line)
fo.close()
#分行处理,逐行处理(2)
fname=input("请输入要打开的文件名称")
fo=open(fname,"r")
for line in fo:
  print(line)
fo.close()
复制代码四.数据的文件写入
<f>.write(s) #向文件写入一个字符或字节流
如:f.write("China!")
<f>.writelines(lines) #将一个全为字符串发列表写入文件
如:ls=["China","Franch"]
f.writelinse(ls)#将元素直接拼接
<f>.seek(offset) #改变当前文件操作指针的位置,offset含义:0-文件开头,2-文件结尾 
如:f.seek(0) #回到文件开头
复制代码数据写入:
fo=open("output.txt","w+")
ls=["China",""]
fo.writelines(ls) #写入一个字符串列表
fo.seek(0)#回到开头(当写入数据时,指针是指向数据末尾的,需要将指针重新指向开头)
for line in fo:
  print(line) 
fo.close
复制代码Python学习系列的文章到文章也就结束啦,关于更多Python的学习,还请后续继续关注“程序员Bob”呀。





















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)
