Python 读取txt文件的每一行

Python 读取txt文件的每一行

Python 中,读取 txt 文件的每一行是一项基本操作,也是处理文本数据的常见需求。Python 提供的内置函数,能够快速的读取文本,并以行为单位进行处理。下面我们将通过几个例子来说明。

读取文本内容

首先需要了解的是,Python 读取文本内容的方式有两种:

  1. 使用内置函数 open() 打开文件,并使用 read() 函数读取文件内容;
  2. 使用内置模块 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 中处理文本数据的基础技能,同时也是数据科学、自然语言处理和机器学习等领域的必备技能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程