python 逐行读取并赋值变量_python 按行逐行读取并解析文本内容

本文介绍了Python如何逐行读取和解析csv、json、excel等文件内容,推荐使用with语句配合open()函数,通过for循环实现逐行读取。详细讲解了打开文件、读取内容和关闭文件的步骤,包括read(), readline(), readlines()等方法的使用,并提供了不同方式的代码示例。" 112215143,10294614,TensorFlow2迁移学习实践:Keras神经风格迁移,"['TensorFlow2', 'Keras', '迁移学习', '深度学习', '神经网络']

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

python 按行读取并解析如 csv、json、excel 等文件内容,通常主要是一行一行读取字符串内容,每行也有按照约定的分隔符进行分开内容,如按照制表符 \t 分隔一行的内容;针对这种场景 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 中,读文件主要分为三个步骤:

打开文件

读取内容

关闭文件

打开文件

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值