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)

相关推荐

  1. 082Python 文本文件

    2024-07-20 13:38:05       19 阅读
  2. python 文本文件的读取

    2024-07-20 13:38:05       59 阅读
  3. C++文本文件与写

    2024-07-20 13:38:05       25 阅读
  4. Python实现逐行读取文本文件的几种方法

    2024-07-20 13:38:05       51 阅读
  5. Python图形用户界面的文本文件加密工具

    2024-07-20 13:38:05       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 13:38:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 13:38:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 13:38:05       45 阅读
  4. Python语言-面向对象

    2024-07-20 13:38:05       55 阅读

热门阅读

  1. Linux绑定硬件IRQ到指定CPU核

    2024-07-20 13:38:05       15 阅读
  2. 使用内网穿透工具 frp 发布内网 web 站点

    2024-07-20 13:38:05       21 阅读
  3. 【WebRTC】Duplex通信是什么意思?

    2024-07-20 13:38:05       21 阅读
  4. TCP Socket编程示例

    2024-07-20 13:38:05       18 阅读
  5. windows上安装Apache

    2024-07-20 13:38:05       17 阅读
  6. 信息查询_社工

    2024-07-20 13:38:05       15 阅读
  7. Clickhouse 物化视图-optimize无效

    2024-07-20 13:38:05       14 阅读
  8. 07.16_111期_linux_网络通信

    2024-07-20 13:38:05       15 阅读
  9. 我为什么要使用Vim编辑器?

    2024-07-20 13:38:05       15 阅读
  10. 微服务概念篇-服务提供者/服务消费者

    2024-07-20 13:38:05       12 阅读
  11. 后端配置了相关字段后的前端跨域处理

    2024-07-20 13:38:05       15 阅读