Python 读取文本
最后修改于 2024 年 1 月 29 日
在本文中,我们将展示如何在 Python 中读取文本数据。
我们可以使用内置的 open
函数或 pathlib
模块在 Python 中读取文本数据。
Path.read_text
将文件内容读取为字符串。
open
函数用于在 Python 中打开文件。
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None)
file
是要打开的文件的名称。mode
指示文件将如何打开:用于读取、写入或追加。buffering
是一个可选整数,用于设置缓冲策略。
encoding
是用于解码或编码文件的编码名称。errors
是一个可选字符串,指定如何处理编码和解码错误。newline
控制换行字符的行为。
文件模式为
模式 | 含义 |
---|---|
'r' | 用于读取(默认) |
'w' | 用于写入,先截断文件 |
'a' | 用于写入,如果文件存在则在文件末尾追加 |
'b' | 二进制模式 |
't' | 文本模式(默认) |
'+' | 更新(读取和写入) |
'x' | 独占创建,如果文件存在则失败 |
默认模式是文本模式。
falcon sky book sum cup cloud water win
我们有这个简单的文本文件。
使用 read 函数读取 Python 文本
read
函数最多读取 size
个字符作为单个字符串。如果 size
参数为负数,则读取直到 EOF。
#!/usr/bin/python with open('words.txt', 'r') as f: contents = f.read() print(contents)
程序读取整个文件并打印其内容。
with open('words.txt', 'r') as f:
我们在读取模式下打开 works.txt
文件。由于我们没有指定二进制模式,因此文件以默认文本模式打开。该函数返回文件对象 f
。with
语句通过封装常见的准备和清理任务来简化异常处理;此外,它还会自动关闭已打开的文件。
contents = f.read()
我们调用文件对象的 read
函数。由于我们没有指定任何参数,它会读取整个文件。
$ ./main.py falcon sky book sum cup cloud water win
在下一个示例中,我们显式指定了文本模式。
#!/usr/bin/python with open('words.txt', 'rt') as f: contents = f.read() print(contents)
程序读取整个 words.txt
文件。
使用 readline 读取 Python 文本
readline
函数读取直到换行符或 EOF 并返回单个字符串。如果流已处于 EOF,则返回空字符串。如果指定了 size
参数,则最多读取 size 个字符。
#!/usr/bin/python with open('words.txt', 'r') as f: line = f.readline() print(line.rstrip()) line = f.readline() print(line.rstrip())
在示例中,我们从文件中读取了两行。rstrip
函数会从字符串中删除末尾的换行符。
$ ./main.py falcon sky
使用 readlines 读取 Python 文本
readlines
函数读取并返回流中的行列表。
#!/usr/bin/python with open('words.txt', 'r') as f: lines = f.readlines() print(lines) for line in lines: print(line.strip())
在示例中,我们使用 readlines
读取文件内容。我们打印行列表,然后使用 for 语句循环遍历列表。
$ ./main.py ['falcon\n', 'sky\n', 'book\n', 'sum\n', 'cup\n', 'cloud\n', 'water\n', 'win'] falcon sky book sum cup cloud water win
使用 for 循环读取 Python 文本
由于从 open
函数返回的文件对象是可迭代的,我们可以直接将其传递给 for 循环。
#!/usr/bin/python with open('works.txt', 'r') as f: for line in f: print(line.rstrip())
程序迭代文件对象以打印文本文件的内容。
$ ./main.py falcon sky book sum cup cloud water win
使用 Path.read_text 读取 Python 文本
Path.read_text
函数以文本模式打开文件,读取它,然后关闭文件。它是用于轻松读取文本的便捷函数。它不适用于大文件。
#!/usr/bin/python from pathlib import Path path = Path('words.txt') content = path.read_text() print(content)
程序一次性将整个文本文件读取到一个字符串中。
$ ./main.py falcon sky book sum cup cloud water win
来源
在本文中,我们展示了如何在 Python 中读取文件。
作者
列出所有 Python 教程。