前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 逐行读取txt 文件并生成列表

Python 逐行读取txt 文件并生成列表

作者头像
全栈程序员站长
发布2022-07-23 16:52:35
5.7K0
发布2022-07-23 16:52:35
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。


前言

我们在编写一些自动化脚本的时候,为了方便,经常需要以txt 文件作为数据输入,今天就跟大家讨论一下如何对txt 文件进行读取并生成对应的列表等程序可操作的数据载体

开始

1. 载入文件

这步就大家比较熟悉,文件操作中最基本的了。

因为我们只需要读取文件,并不需要写入文件,所以在这里指定mode="r" 为只读模式(默认)。

代码语言:javascript
复制
f = open("C:/foo.txt", "r",encoding='utf-8')

此时就有了这个txt 文件的数据输入流了。

2. 读取数据流

读取数据的方法主要有三个,分别是read()readline()readlines()

方法

作用

read()

从文件读取指定的字节数,如果未给定或为负则读取所有。

readline()

读取整行,包括 “\n” 字符。

readlines()

读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。

接下来简单展示一下这三种方法的区别: 这是foo.txt 中的内容

代码语言:javascript
复制
("祖安", 1000)
("诺克萨斯", 900)
("艾欧尼亚", 880)
("暗影岛", 750)
("征服之海", 620)
("黑色玫瑰", 600)
("德玛西亚", 500)
("裁决之地", 440)
("圣安地列斯", 400)
("自由城", 350)
("供电所", 300)
("影流", 200)
("荆棘坎坷", 180)
("永不言弃", 100)
  1. read() 和txt 数据格式一致,返回str 类型数据
在这里插入图片描述
在这里插入图片描述
  1. readline() 只读取一行(包括换行),返回str 类型数据
在这里插入图片描述
在这里插入图片描述
  1. readlines() 全部读取,返回list 类型数据
在这里插入图片描述
在这里插入图片描述

3. 数据处理

根据上一步,我们可以得到多种形式的数据类型,从而根据我们的需求进行多种处理。

大家可以看到,我的foo.txt 中的数据是满足元组形式的,那我就试着将foo.txt 文件中的字符串类型数据转变成元组吧:

代码语言:javascript
复制
line = f.readline() # 读取一行
tu = eval(line) # 转为元组形式
print(tu)
print(type(tu))

输出:

在这里插入图片描述
在这里插入图片描述

若需要全部数据都逐行转变为元组,然后整体串成一个列表:

代码语言:javascript
复制
txt_tables = []
f = open("C:/foo.txt", "r",encoding='utf-8')
line = f.readline() # 读取第一行
while line:
    txt_data = eval(line) # 可将字符串变为元组
    txt_tables.append(txt_data) # 列表增加
    line = f.readline() # 读取下一行
print(txt_tables)

之所以while 循环中的f.readline() 能够不断读取下一行,是因为当我们每次执行完一次该语句之后,文件输入流的指针都会移动到下一行的起始位,所以每次再次执行,都是从下一行的第一个字符开始读取。

输出:

在这里插入图片描述
在这里插入图片描述

4. 关闭文件

是的,不要忘了关闭文件流:

代码语言:javascript
复制
f.close()

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126834.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 开始
    • 1. 载入文件
      • 2. 读取数据流
        • 3. 数据处理
          • 4. 关闭文件
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档