Python 读取txt文件的每一行
在 Python 中,读取 txt 文件的每一行是一项基本操作,也是处理文本数据的常见需求。Python 提供的内置函数,能够快速的读取文本,并以行为单位进行处理。下面我们将通过几个例子来说明。
读取文本内容
首先需要了解的是,Python 读取文本内容的方式有两种:
- 使用内置函数
open()
打开文件,并使用read()
函数读取文件内容; - 使用内置模块
codecs
的函数open()
,指定编码方式,再使用readline()
函数逐行读取文件内容。
下面的例子演示如何使用内置函数 open()
和 read()
函数读取文本文件。
with open('test.txt', 'r') as f:
text = f.read()
print(text)
此例中,函数 open()
接收文件路径和打开模式参数,打开模式参数默认为 r
,表示只读模式打开。使用语句 with open(...) as f
可以在操作完成后自动关闭文件。函数 read()
可以快速读取文本文件,并将文件内容保存到变量 text
中。最后,使用 print()
函数显示文本内容。
下面的例子演示如何使用 codecs
模块函数 open()
和 readline()
函数逐行非常读取文件内容。
import codecs
with codecs.open('test.txt', 'r', 'utf-8') as f:
while True:
line = f.readline()
if not line:
break
print(line)
从 Python 3.x 开始,打开文件时默认编码为 utf-8 字符集,因此上述代码可以省略 codecs
模块。此例中,函数 readline()
逐行读取文本文件,直到文件结束。如果读取到的行为空,则跳出循环。最后,使用 print()
函数输出文本内容。
行处理方法
读取到的文本文件内容通常包含多行,在处理时需要以行为单位进行操作。下面的例子演示如何使用 for 循环读取每一行。
with open('test.txt', 'r') as f:
for line in f:
print(line)
此例中,使用 with open(...) as f
语句打开文本文件,并使用 for 循环逐行读取文件内容并输出。
在处理每一行时,我们经常需要去掉行末的空格、回车和制表符等空白字符。下面的例子演示如何使用 strip()
函数删除空白字符。
with open('test.txt', 'r') as f:
for line in f:
line = line.strip()
print(line)
此例中,函数 strip()
可以将字符串行末的空白字符删除,并返回新的字符串对象。使用 for 循环逐行读取文件内容,每一行读取后使用 strip()
函数删除行末空白字符,并输出新的字符串。
特定处理
在实际应用中,我们有时需要针对特定文本格式或特定文本内容进行处理。下面的例子演示如何读取指定格式的文本行。
with open('test.txt', 'r') as f:
for line in f:
if line.startswith('Name: '):
name = line[6:].rstrip('\r\n')
print(name)
elif line.startswith('Age: '):
age = line[5:].rstrip('\r\n')
print(age)
此例中,我们假设文本格式如下:
Name: John
Age: 24
在读取每一行时,使用函数 startswith()
判断是否以指定内容开头。如果行开头以 Name: 开头,则使用字符串操作 line[6:]
截取 Name 后面的字符串,并使用 rstrip('\r\n') 删除行末的回车换行符。并将处理后的姓名保存到变量
name` 中,最后输出。如果行开头以 Age: 开头,则使用类似的方法将年龄提取出来并输出。
结论
使用 Python 读取 txt 文件的每一行是一个基本操作,可以使用内置函数 open()
和 read()
函数快速读取文本文件内容,也可以使用 codecs
模块函数 open()
和 readline()
函数逐行读取文本文件内容。在处理每一行时,使用 strip()
函数可以删除行末空白字符;使用 startswith()
函数可以判断以特定内容开头的行,并利用字符串操作提取需要的信息。以上方法都是在 Python 中处理文本数据的基础技能,同时也是数据科学、自然语言处理和机器学习等领域的必备技能。