Python笔记-txt文件

1.读取文件

Python 提供了如下 3 种函数,它们都可以帮我们实现读取文件中数据的操作:

  • read() 函数:逐个字节或者字符读取文件中的内容;
  • readline() 函数:逐行读取文件中的内容;
  • readlines() 函数:一次性读取文件中多行内容。

1.1read()函数

对于借助 open() 函数,并以可读模式(包括 r、r+、rb、rb+)打开的文件(r代表可读模式,b代表以二进制格式打开),可以调用 read() 函数逐个字节(或者逐个字符)读取文件中的内容。

如果文件是以文本模式(非二进制模式)打开的,则 read() 函数会逐个字符进行读取;反之,如果文件以二进制模式打开,则 read() 函数会逐个字节进行读取。

read() 函数的基本语法格式如下:

file.read([size])

其中,file 表示已打开的文件对象;size 作为一个可选参数,用于指定一次最多可读取的字符(字节)个数,如果省略,则默认一次性读取所有内容。(size 表示的是一次最多可读取的字符(或字节)数,因此,即便设置的 size 大于文件中存储的字符(字节)数,read() 函数也不会报错,它只会读取文件中所有的数据。)

举个例子,首先创建一个名为 draft.txt 的文本文件,其内容为:

学习如何读取TXT文件
第二行
第三行

然后在和 draft.txt 同目录下,创建一个 file.py 文件,并编写如下语句:

# 以 utf-8 的编码格式打开指定文件
f = open('draft.txt', 'r', encoding='utf-8')
# 输出读到的数据
print(f.read())
# 关闭文件
f.close()

程序执行结果为:

学习如何读取TXT文件
第二行
第三行
注意,当操作文件结束后,必须调用 close() 函数手动将打开的文件进行关闭,这样可以避免程序发生不必要的错误。

1.2readline()函数

readline() 函数用于读取文件中的一行,包含最后的换行符“n”。此函数的基本语法格式为:

file.readline([size])

其中,file 为打开的文件对象;size 为可选参数,用于指定读取每一行时,一次最多读取的字符(字节)数。

和 read() 函数一样,此函数成功读取文件数据的前提是,使用 open() 函数指定打开文件的模式必须为可读模式(包括 r、rb、r+、rb+ 4 种)。

# 以 utf-8 的编码格式打开指定文件
f = open('draft.txt', 'r', encoding='utf-8')
# 输出读取的一行数据
print(f.readline())
# 关闭文件
f.close()

程序的执行结果:

学习如何读取TXT文件

由于 readline() 函数在读取文件中一行的内容时,会读取最后的换行符“n”,再加上 print() 函数输出内容时默认会换行,所以输出结果中会看到多出了一个空行。

1.3readlines()函数

readlines() 函数用于读取文件中的所有行,它和调用不指定 size 参数的 read() 函数类似,只不过该函数返回是一个字符串列表,其中每个元素为文件中的一行内容。

和 readline() 函数一样,readlines() 函数在读取每一行时,会连同行尾的换行符一块读取。

readlines() 函数的基本语法格式如下:

file.readlines()

其中,file 为打开的文件对象。和 read()、readline() 函数一样,它要求打开文件的模式必须为可读模式(包括 r、rb、r+、rb+ 4 种)。

# 以 utf-8 的编码格式打开指定文件
f = open('draft.txt', 'r', encoding='utf-8')
# 输出读取的所有数据,结果以列表形式返回
print(f.readlines())
# 关闭文件
f.close()

程序运行结果:

['学习如何读取TXT文件\n', '第二行\n', '第三行\n']

2.写入文件

注意:一定要慎重,小心别清空原本的文件,打开 -- 写入 -- (保存)关闭,不关闭没办法保存。

2.1覆盖写 --- w

# 以 utf-8 的编码格式打开指定文件
f = open('draft.txt', 'w', encoding='utf-8')  # 覆盖写
# 写入数据
f.write('第四行')
# 关闭文件
f.close()
注意:这一步需要相当慎重,因为如果编辑的文件存在的话,这一步操作会先清空这个文件再重新写入。那么如果不要清空文件再写入该如何做呢?
使用r+ 模式不会先清空,但是会替换掉原先的文件。

2.2替换写 --- r+

# 以 utf-8 的编码格式打开指定文件
f = open('draft.txt', 'r+', encoding='utf-8')  # 替换
# 写入数据
f.write('第四行')
# 关闭文件
f.close()

如果在写之前先读取一下文件,再进行写入,则写入的数据会添加到文件末尾而不会替换掉原先的文件。这是因为指针引起的,r+ 模式的指针默认是在文件的开头,如果直接写入,则会覆盖源文件,通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了。这里也可以使用a 模式

2.3追加写 --- a

# 以 utf-8 的编码格式打开指定文件
f = open('draft.txt', 'a', encoding='utf-8')  # 追加写
# 写入数据
f.write('第四行')
# 关闭文件
f.close()
原始文章链接:

https://www.php.cn/python-tutorials-479676.html

https://www.cainiaojc.com/note/qadac6.html

最后修改:2022 年 11 月 01 日 10 : 09 AM
如果觉得我的文章对你有用,请随意赞赏