Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-note-read-line-file.html

python 按行逐行读取文件并解析文本内容

Python 笔记 Python 笔记


按行读取解析如 csv、json、excel 等文件内容,通常每行也有按照约定的分隔符进行分开内容;针对这种场景 python 有多种方法实现,open() 方法打开文件,调用 read()read(size)readline()readlines() 等函数读内容,最后调 close() 对文件进行关闭。

推荐方式

with open('filename') as f:
    for line in f:
        print(line)

从 python 2.6 开始,with 成为默认关键字,with ... as ... 是一个控制流语句,跟 if for while try 之类的是一类,with 可以用来简化 try ... finally ... 代码,用很优雅的方式处理上下文环境产生的异常,无需在 finally 里显性调用 close() 方法,自动帮我们调用关闭方法。

在 python 中,文件对象是可迭代的,这意味着我们可以直接在 for 循环中使用它们(如上示例),而且是逐行迭代的,效果和 readline() 是一样的,而且更简洁。

读操作分解

在 python 中,读文件主要分为三个步骤:

  1. 打开文件
  2. 读取内容
  3. 关闭文件

打开文件

f = open('/path/to/file', 'r')

打开文件调用 open 方法,参数除了指定文件外,还需设置打开模式。

open 函数的常用模式主要有:

open 函数的常用模式
参数 模式
'r' 读模式
'w' 写模式
'a' 追加模式
'b' 二进制模式(可添加到其他模式中使用)
'+' 读/写模式(可添加到其他模式中使用)

读取内容

通常而言,读取文件有以下几种方式:

  • 一次性读取所有内容,使用 read()readlines()
  • 按字节读取,使用 read(size)
  • 按行读取,使用 readline()

关闭文件

关闭文件的操作是调用文件对象的 close() 方法,除了 with ... as ... 语句中自动帮我们调用,在 try ... finally 里需要在 finally 里显性调用。

try:
    f = open('/path/to/file', 'r')    # 打开文件
    data = f.read()                   # 读取文件内容
finally:
    if f:
        f.close()                     # 确保文件被关闭

with ... as ... 方式

除了推荐方式,直接迭代文件对象,也可以结合 with ... as ... 调用读取方法逐行读取。

readlines()

with open('/path/to/file') as f:
    data_list = f.readlines()
    if data_list:
        for line in data_list:
            print(line)

readlines() 同样也是一次性读取所有内容,但与 read() 不一样的是直接返回字符串列表类型,所以直接遍历列表即可。

read()

with open('/path/to/file') as f:
    data_str = f.read()
    if data_str:
        for line in data_str.split('\n'):
            print(line)

read() 一次性读取所有内容,并返回字符串类型,所以要一行一行处理,需要按照换行符 \n 分隔后再操作。

try ... finally ... 方式

readlines()

try:
    f = open('/path/to/file', 'r')
    data_list = f.readlines()
    if data_list:
        for line in data_list:
            print(line)
finally:
    if f:
        f.close()

read()

try:
    f = open('/path/to/file', 'r')
    data_str = f.read()
    if data_str:
        for line in data_str.split('\n'):
            print(line)
finally:
    if f:
        f.close()
在Java中解析文件内容有多种方式,下面将介绍几种常见的方法,并提供每种方法的步骤流程和示例代码。示例代码:###使用ApacheCommo ...
以下是一些常见的文件读取方式以及它们的详细步骤流程,包括使用第三方库的情况:###使用FileInputStream和FileOutputS ...
###方法一:使用基本的文件读写操作这种方法涉及使用Java的标准I/O操作来读取和修改文件。Maven依赖:Gradle依赖:示例代码:# ...
在Java中解析HTML文件有多种方式,其中一些常用的方式包括使用原生的Java类库、Jsoup库和HTMLParser库。示例代码:Mav ...
在Java中解析Excel文件有多种方式,常用的包括ApachePOI、JExcelApi、JExcel等。步骤流程:添加依赖(Maven) ...