本文收录于《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 方法可以很好地满足这种需求,因为它将每行代码作为独立的字符串元素提供给后续处理逻辑。
关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!