Python基础知识(八)--文件操作,备份文件

文件可以用来存储数据。若根据文件内容的不同来给文件分类,可分为:

(1)文本类型:存放文字类数据,读写时使用r、w;

(2)二进制原始数据类型:存放二进制bytes数据,比如图片、音频、视频等,读写时使用rb、wb;

在Python中操作文件记录信息的步骤:

(1)打开文件,或新建一个文件; open()
(2)读取或写入数据内容; read() / write()
(3)关闭文件。 close()

说明:

无论操作文件的过程多么复杂,这个步骤基本是一致的。

(1)打开文件

在操作一个文件前,需要先打开文件。

函数名含义
open(name, mode)创建一个新文件或打开一个已经存在的文件,name指的是文件名,mode指的是访问模式。

常见的mode访问模式有:

模式描述
r以读数据的方式打开文件,这是默认模式,可以省略。
rb以读二进制原始数据的方式打开文件。
w以写数据的方式打开文件。如果文件已存在,则打开文件写入数据是会覆盖原有内容。如果文件不存在,则创建新文件。
wb以写二进制原始数据的方式打开文件。
a使用追加内容形式,打开一个文件。通常用于写数据,此时会把新内容写入到已有内容后。

说明:

(1)访问模式r表示read,即读;

(2)访问模式w表示write,即写。

(2)读数据

在读取文件数据前,该文件必须已存在。

函数名含义
read()从某文件中,一次性读完整的数据。
readlines()按行的方式把文件中的完整内容进行一次性读取,并返回一个列表。
readline()一行一行读文件中的数据内容。

说明:

当访问模式有r时,可以读数据。

(3)写数据

在写文件数据前,文件若不存在,则创建一个新文件。

函数名含义
write(seq)给某文件写数据。

说明:

(1)当访问模式有w时,可以写数据;

(2)当使用访问模式a时,用于追加数据内容,也可以写入数据。

(4)关闭文件

当每次打开文件及使用完毕后,都需要进行关闭文件,用于释放系统内存资源。

函数名含义
close()关闭文件。

总结:

(1)读数据时使用r模式,写数据时使用(w)模式;

(2)不管一个文件有多么复杂,操作步骤都是:打开文件、读/写数据、关闭文件。

[掌握]写数据

给文件写入数据:

函数名含义
write(seq)给某文件写数据。
# 1.打开文件
file = open("./file/test.txt","w")
# 2.写入数据
# file.write("Hello World.")
file.write("123456")
# 3.关闭文件
file.close()
print("已成功写入数据!")
####################扩展写入中文#####################
# 1.打开文件
# file = open("./file/test2.txt","w")
file = open("./file/test2.txt","w",encoding="utf-8")  # 写入中文: encoding编码
# 2.写入数据
file.write("世界和平")
# 3.关闭文件
file.close()
print("数据已写入成功!!")

给文件读取数据:

函数名含义
read()从某文件中,一次性读完整的数据。

说明:

读取文件数据之前,要保证文件已经存在。

为了简化读写数据的操作,也可以使用语法:

with open(xxx, xx) as 变量名:
    变量名.read()
    # 变量名.write(xxx)

读取数据的两种方式:

# 1.打开文件
# file = open("./file/hello.txt","r")
file = open("./file/hello2.txt","r",encoding="utf8")
# 2.读数据
texts = file.read()
print(texts)
# 3.关闭文件
file.close()
with open("./file/hello.txt","r") as file:
    texts = file.read()
print(texts)  #自动关闭文件

其他方式读数据

函数名含义
readlines()按行的方式把文件中的完整内容进行一次性读取,并返回一个列表。
readline()一行一行读文件中的数据内容。

readlines()读取数据:

# 1.打开文件
# file = open("./file/hello.txt","r")
#扩展写入中文
file = open("./file/hello.txt","r",encoding="utf-8")
# 2.读数据
# readlines()
#一次性读取,返回一个列表
lines = file.readlines()  # ['hello python\n', 'abc\n', 'ABCDEFG\n', '123']
print(lines)

# 3.关闭文件
file.close()

 readline()读取数据:

# 1.打开文件
# file = open("./file/hello.txt","r")
#扩展写入中文
file = open("./file/hello.txt","r",encoding="utf-8")
# readline()   一行一行的读取,当使用readline()读取数据时, 指针偏移量开始移动;  2.再调用指针继续移动
line = file.readline()
print(line)

while True:
    line = file.readline()
    if len(line) == 0:  # \n
        break
    print(line)

# 3.关闭文件
file.close()

对文件进行备份:

# 1.打开原始文件
reader = open("./file/hello.txt","r")
# A.打开目标文件
writer = open("./file/hello[备份].txt","w")

# 2.读数据
texts = reader.read()
# B.写数据 -读取的原始文件的数据
writer.write(texts)

# 3.关闭文件
reader.close()
# C.关闭目标文件
writer.close()
print("已成功备份文件..")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值