Python 读取txt文本总结:read()、readlines()并去掉\n

本文详细介绍使用Python读取TXT文件的方法,包括read(), readlines()及splitlines()函数的应用,以及如何通过列表迭代式去除文本中的换行符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 本文收录于《Python开发》专栏,此专栏聚焦于Python开发中的编程技巧和总结,将持续更新,欢迎大家订阅!
  • 个人主页:有梦想的程序星空
  • 个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域,有较丰富的软件系统、人工智能算法服务的研究和开发经验。
  • 如果文章对你有帮助,欢迎关注点赞收藏订阅。

read()方法读取txt文本

首先,原始文本文档file1.txt存放于根目录下的filedir/file1.txt,

内容如下所示:

ajshaks
xnshdjs
sjakksx

使用read()方法读取文件,返回整个文档的内容(字符串类型),

如下所示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
if __name__ == '__main__':
    with open("filedir/file1.txt", "r", encoding="utf-8") as f:
        text = f.read()
    
    print(text)
    print(type(text))

输出结果为:

ajshaks
xnshdjs
sjakksx
<class 'str'>

splitlines()方法获取字符串列表

如果需要输出字符串列表,再接着使用splitlines()方法,

如下所示(推荐该方式获取字符串列表):

#!/usr/bin/env python
# -*- coding:utf-8 -*-
if __name__ == '__main__':
    with open("filedir/file1.txt", "r", encoding="utf-8") as f:
        text = f.read().splitlines()
    
    print(text)
    print(type(text))

输出为list列表格式,

如下所示:

['ajshaks', 'xnshdjs', 'sjakksx']
<class 'list'>

readlines()方法读取txt文本

使用readlines()方法同样也可以获取文件内容的字符串列表,

如下所示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
if __name__ == '__main__':
    with open("filedir/file1.txt", "r", encoding="utf-8") as f:
        text = f.readlines()
    
    print(text)
    print(type(text))

输出为list列表格式:

['ajshaks\n', 'xnshdjs\n', 'sjakksx']
<class 'list'>

使用列表迭代式快速去除文本中的"\n"方法

但是,可见列表中每个元素后面都有一个"\n",该如何快速去除呢?

我们可以使用strip()方法和for in列表迭代式去除,strip()方法去除字符串开头和结尾处的指定字符。

如下所示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
if __name__ == '__main__':
    with open("filedir/file1.txt", "r", encoding="utf-8") as f:
        text = f.readlines()

    text = [line.strip("\n") for line in text]
    print(text)
    print(type(text))

输出结果为:

['ajshaks', 'xnshdjs', 'sjakksx']
<class 'list'>

应用场景

read 方法的应用场景:
当需要将整个文件内容作为一个整体进行处理时,如读取一个配置文件的全部内容,然后对其进行整体的解析和处理,read 方法比较合适。例如,在读取一个 JSON 格式的配置文件后,可以直接将读取到的字符串使用 json.loads 方法解析为 Python 对象进行后续操作。
如果要对文件内容进行复杂的字符串操作,且操作对象是整个文本而不是逐行处理,read 方法可以提供方便的字符串处理接口。例如,在文本搜索和替换任务中,如果要替换整个文件中的某个特定单词或短语,使用 read 方法读取整个文件内容后,利用字符串的 replace 方法进行替换会更便捷。
readlines 方法的应用场景:
当需要逐行处理文件内容时,如对一个日志文件进行分析,统计每行的特定信息(如错误日志的数量、不同类型日志的分布等),readlines 方法将文件内容按行分割成列表后,方便通过循环遍历列表来处理每行数据。
在一些文本处理任务中,需要对文件的行结构进行保留和处理,例如在编写代码格式化工具时,需要读取源文件的每行代码并根据一定的规则进行缩进调整、注释处理等操作,readlines 方法可以很好地满足这种需求,因为它将每行代码作为独立的字符串元素提供给后续处理逻辑。

关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有梦想的程序星空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值