不用刻意去巴结一个人,用自己独处的时间,去努力提升自己,待到时机成熟时,就会有一批朋友与你同行。用人情做出来的朋友只是暂时的,用人格吸引的朋友才能更长久。
总目录:
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”呀。