📝前言:
这篇文章主要讲解一下python中对于文件的基础操作:
1,文件编码
2,文件的打开与关闭操作
3,文件读写操作
🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:无问东西
文章目录
- 一,文件编码
- 二,文件的打开与关闭
- 1,open()函数
- 2,打开模式
- 3,路径的书写
- 4,文件的关闭
- 三,文件的读写操作
- 1,文件的读取
- (1)read()
- (2)readline()
- (3)readlines()
- (4)for循环读取
- 2,文件的写入
- (1)write(content)
- (2)writelines(lines)
- (3)文件的追加
一,文件编码
在学习文件操纵前,我们先来了解一下文件编码
什么是文件编码?
文件编码是指在计算机中存储和表示字符串的方法。它涉及字符集中的字符如何转换为二进制数,以及在读取或写入文件时如何将二进制数转换回字符集。
在 Python 中,当你使用 open()
函数打开文件时,可以指定文件的编码方式。常见的编码方式有:
●
‘utf-8’
:这是 Python 的默认编码,可以表示地球上几乎所有的字符。
●‘gbk’
:这是用于简体中文的编码方式。
●‘latin-1’
:也称为 ISO-8859-1,可以表示大多数西方语言的字符。
… 等等。
注意:没有特殊情况,我们一般使用UTF-8
的格式打开文件,使用不正确的编码可能会导致乱码或无法打开文件的问题。
二,文件的打开与关闭
1,open()函数
我们在对文件进行读写操作前,需要先试用open()
函数打开文件
函数原型:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file
: 这是一个必须的参数,表示要打开的文件名或文件模式。如果 file 是一个字符串,那么它表示的是要打开的文件名;如果file
是一个整数,那么它表示的是文件模式。例如,0 表示以读模式打开,1 表示以写模式打开,2 表示以读写模式打开。
mode
: 这是一个可选的参数,表示文件模式。默认值为 ‘r’,表示读模式。其他常见的模式还有 ‘w’(写模式)和 ‘a’(追加模式)。
buffering
: 这是一个可选的参数,表示缓冲策略。默认值为 -1,表示使用系统默认的缓冲策略。如果设置为 0,则表示无缓冲;如果设置为 1,则表示有缓冲。
encoding
: 这是一个可选的参数,表示文件的编码方式。例如,‘utf-8’、‘gbk’ 等。
errors
: 这是一个可选的参数,表示在编码或解码时处理错误的方式。例如,‘strict’、‘ignore’、‘replace’ 等。
newline
: 这是一个可选的参数,表示在文件中使用的换行符。例如,‘\n’、‘\r\n’ 等。
closefd
: 这是一个可选的参数,表示是否在打开文件时关闭文件描述符。默认值为 True。
opener
: 这是一个可选的参数,表示用于打开文件的函数。默认值为 None,表示使用内建的 open() 函数。
这个有点复杂了,但其实我们常用到的参数就'file'
、mode
以及encoding
,分别是指文件的路径,文件的打开方式以及文件的编码方式(一般情况下使用UTF-8
)
示例一:
(以只读的形式打开一个文件,返回的是一个文件对象):
f = open('file.txt','r',encoding='UTF-8') #注意:encoding要关键字传参
我们还可以用使用 with
语句打开文件,可以确保文件在操作完成后自动关闭,避免资源泄露。
示例二:
# 以读模式打开文件
with open('file.txt', 'r') as f:
content = f.read()
# 以写模式打开文件
with open('file.txt', 'w') as f:
f.write('Hello, world!')
这个时候文件对象就是as
后面的f
2,打开模式
在刚刚的例子中我们提到了’‘r’和’w’:读和写两种打开模式,下面我们将看看其他的模式,并具体介绍一下这些模式:
注意:
打开的文件不存在,python中的“w”
功能就会创建新文件
打开的文件存在,"w"
写入会覆盖原有内容(即把原有内容清空了,再写入)
3,路径的书写
斜杠(/
)或双反斜杠(\
)都可以用来表示路径分隔符。例如:C:\Users\username\Documents
为了确保代码的跨平台兼容性,建议使用斜杠(/
)作为路径分隔符,这样可以同时在Windows、Linux和macOS上运行而无需修改。
4,文件的关闭
文件的关闭使用close()
,示例:
f.close()
三,文件的读写操作
1,文件的读取
(1)read()
用于读取文件的所有内容,读取的内容以字符串的形式储存并返回
语法:
read(num)
num
代表从文件中读取的字符串的长度,单位是字节,如果没有传入参数,则代表读取全部内容
例如:
with open("file.txt", "r") as file:
content = file.read()
(注意: 如果有多个read
读取,后面的read
会从前一个read
读取到的末尾开始读)
(2)readline()
用于读取文件中的一行,例如:
with open("file.txt", "r") as file:
line = file.readline()
(3)readlines()
读取文件中的所有行(回车符也会被读取),然后每一行为一个元素,以列表的形式储存
例如:
with open("file.txt", "r") as file:
lines = file.readlines()
(4)for循环读取
我们还可以用for
循环来读取文件的每一行,得到的每一行都是字符串
例如:
with open("file.txt", "r") as file:
for line in file:
......
总结:
2,文件的写入
(1)write(content)
这个方法用于将内容写入文件。例如:
with open("file.txt", "w") as file:
file.write("Hello, World!")
(2)writelines(lines)
这个方法用于将多行内容写入文件。例如:
with open("file.txt", "w") as file:
file.writelines(["Hello", "\n", "World!"])
注意:我们调用上面两种方法写入的时候,内容并不会直接被写入文件里面,内容会被积攒在程序的内存中,即:缓存区
只有当我们调用flush()
方法刷新内容的时候,内容才会出现在文件里
示例:
f = open("D:/test.txt", "w", encoding="UTF-8")
# write写入(原内容会被覆盖)
f.write("Hello World!")
# flush刷新
f.flush()
注意:close()
方法自带flush()
功能
(3)文件的追加
"a"
模式:写入内容的时候,是在原来内容的后面追加
追加写入的函数和"w"
一样,只是打开模式不同
示例:
f = open("D:/test.txt", "a", encoding="UTF-8")
# write写入(原内容不会被覆盖)
f.write("Hello World!")
# flush刷新
f.flush()
🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!