082、Python 读文本文件

在Python中读取txt文本文件可以通过内置的open()函数结合file对象的read(), readline(), readlines()等方法实现。

1. 使用read()方法

read()方法会读取文件的全部内容,并将其作为一个字符串返回。

# 打开文件并读取全部内容

with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

这里有几点需要注意的:

(1)这里用到的是文件的相对路径,也可以使用文件的绝对路径,如C:\Users\admin\Desktop\雨巷.txt。

(2)with语句是推荐的文件操作方式,它可以自动管理文件的打开和关闭(它可以避免文件损坏或资源泄露)。

(3)这里指定了文件的编码格式为encoding='utf-8',这对于处理非ASCII字符(如中文)的文件非常重要。假如环境中的默认编码方式已设置为utf-8,可以不带这个参数,假如不确定,可以使用以下方法检查:

import sys

# 检查环境中文件的编码方式
print(sys.getdefaultencoding())

2. 使用readline()方法

readline()方法每次读取文件中的一行。

# 打开文件并逐行读取
with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:
    line = file.readline()
    while line:
        print(line, end='')  # end='' 避免打印额外的换行符
        line = file.readline()

3. 使用readlines()方法

readlines()方法会读取整个文件,并将文件的每一行作为一个元素存储在列表中返回。

# 打开文件并读取全部行到一个列表中
with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()
    for line in lines:
        print(line, end='')  # 同样,end='' 避免打印额外的换行符

4.读大文本文件

当我们读取的文本文件很大时,由于内存的限制,我们就不能用read()readlines()方法。我们可以采用一种逐步读取文件内容的方法。

1、逐行读取:

for循环中直接使用文件对象时,由Python自动逐行迭代文件,也可以使用上面的readline()方法。

with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:
    for line in file:
        # 处理每一行
        print(line, end='')  # 如果不需要额外的换行符,可以使用end=''

2、分块读取

使用read(size)方法,通过size设置每次读取的字符数。

with open(file='Resources/雨巷.txt', mode='r', encoding='utf-8') as file:
    chunk_size = 20  # 例如,每次读取20个字符
    chunk = file.read(chunk_size)
    while chunk:
        print(chunk, end='')  # 如果不需要额外的换行符,可以使用end=''
        chunk = file.read(chunk_size)

猜你喜欢

转载自blog.csdn.net/mr_five55/article/details/140567968