2020年12月30日 23:00 __ _ _ _ _

文章配图

不要去追一匹马,用追马的时间种草,待到春暖花开之时,就会有一批骏马,任你挑选。

——屠呦呦

文章配图

不用刻意去巴结一个人,用自己独处的时间,去努力提升自己,待到时机成熟时,就会有一批朋友与你同行。用人情做出来的朋友只是暂时的,用人格吸引的朋友才能更长久。

总目录:

  1. 文件的类型

  2. 文件的打开和关闭

  3. 文件内容的读取

  4. 数据的文件写入

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”呀。

文章配图

往期推荐:

关于Python第三方库安装的那些事 2020-12-27
文章配图

Python系列~字段类型以及jieba库的使用 2020-12-26
文章配图

来学Python啦,序列类型操作的那些事儿 2020-12-22
文章配图

为你,千千万万遍.

关注 程序员Bob 公众号,与你一起终生学习

文章配图

一键三连,就差你了
文章配图

预览时标签不可点

阅读




__