python利用read()、readline()、readlines()读取文件

news2024/9/27 23:24:37

目录

1.语法和用法

2.实例


1.语法和用法

with open(file,mode='r',encoding=None) as f:
    #①读取所有文本
    data1 = f.read()
  
    #②读取第一行数据
    data2 = f.readline()  

    #③读取所有文本数据 
    data3 = f.readlines()

说明:

with  …… as ……:用于命名,也可以直接赋值的方式,比如a = b。

open():用于打开文件。

file:文件名,用英文引号引着文件所在地和文件名,比如'vote.txt'。

mode:读写模式,默认为‘r’读取文件,不存在该文件会报错。常用的还有‘w’写入文件,若文件不存在新建一个文件再写入;还有‘a’追加写入,存在文件则直接追加内容,不存在则新建文件中写入内容。

encoding:一般为‘utf-8’可以读取utf-8以及gbk格式的文本。


2.实例

(1)读取竞选文档并统计竞选名单。每行只能投一个人选,其他为无效票。

原文件vote.txt内容

 

#竞选名单统计
f = open("vote.txt",encoding='utf-8') #打开文件,默认为‘r’读取,用‘utf-8’编码防止读取中文乱码
names = f.readlines() #读取所有行,并命名为names
f.close() #关掉文件
D = {}  #自定义一个空字典D
for name in names: #用for循环迭代每一行投票结果
    if len(name.split())==1:  #当每一行投票名字只有一个才有效,其他无效
        D[name[:-1]]=D.get(name[:-1],0) + 1 #用字典的get方法统计
l = list(D.items()) #将获取的字典转为列表
l.sort(key=lambda s:s[1],reverse=True)  #按统计票数进行降序排序
name = l[0][0]  #提取第一名名字
score = l[0][1]  #提取第一名票数
print("最具人气明星为:{},票数为:{}".format(name,score)) #输出第一名人气名字和票数

输出结果为:

最具人气明星为:李四,票数为:2

(2)读取情感词频数据。

 

text = open("./qianhou_emotion.csv","r")
print("文件名为:",text.name)
d ={}
for line in text.readlines(): #迭代每一行
    line = line.strip()  #去掉空字符
    print("读取的数据为:%s"%line) #输出读取每行的数据

for line in text: #迭代每行各字段的数据  
    ls = str(line).strip('\r\n').split(',')  #将每行数据迭代切割,实际cvs文件是以逗号“,”分割
    print(ls)

print('{},{},{},{}\n'.format(ls[0],ls[1],ls[2],ls[3]))

参考文章:

 字典dict具体的使用方法可参考:python的dict字典的语法及实例_小白修炼晋级中的博客-CSDN博客_python字典的基本案例

for循环的具体使用方法可参考:python的for循环语句的用法及实例_小白修炼晋级中的博客-CSDN博客_python中for循环语句例子

split函数具体使用方法可参考:python如何将字符串进行拆分——split函数的用法及实例_小白修炼晋级中的博客-CSDN博客

list的reverse、sort具体用法可参考:

python的列表list排序方法——sort、reverse用法及实例_小白修炼晋级中的博客-CSDN博客_python中sort和reverse

其他文章:Python读取txt文本三种方式 - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年总结:打开新世界,踏上新征程

一、前言 于我而言,2022年是我的幸运年,人生发生转折的关键点。同时,也可能是互联网行业、社会经济状况开始扭转的一年。因此,打算在CSDN开始记录下我的第一篇年总结。当然除了是意义特殊外,也还有现实实在的意义&…

【ROS服务通信】服务端和客户端

本文记录下ROS服务通信的实现,首先明确,ROS中的服务通信主要适用于偶然的,有实时要求的场景。服务通信基于客户-服务的架构,在主节点下,由服务端和客户端组成,服务端负责对请求做出响应,客户端发…

SQL Server2019详细安装教程(含JDBC连接)

文章目录一、安装SQL Server引擎1.1、安装SQL Server1.2、SQL Server选项配置二、SQL Server Management Studio(SSMS,客户端)2.1、安装连接工具2.2、连接SQL Server三、JDBC连接SQLServer提前配置查看SQLSever的启动端口Java代码参考文章一、…

雷神五代笔记本U盘重装系统图文教程

雷神五代笔记本U盘重装系统图文教程分享。有用户使用的雷神五代笔记本开机之后会自动安装很多的软件,导致卡到无法正常使用。这个情况是电脑中了病毒程序导致的,一起来看看如何通过U盘来重新安装系统操作教程吧。 准备工作: 1、U盘一个&#…

蓝桥杯嵌入式串口uart

文章目录前言一、板子串口原理图2.cubeMx配置3.波特率的简单讲解4.代码编写一、发送数据函数二、开启接收中断函数三、中断回调函数四、具体使用总结前言 本篇文章将带大家了解串口的编程,串口在比赛当中和实际工程中都是非常重要的,串口的难度也比较大…

微信小程序自定义tabbar底部菜单

自定义 tabBar 可以让开发者更加灵活地设置 tabBar 样式,以满足更多个性化的场景。 在自定义 tabBar 模式下,为了保证低版本兼容以及区分哪些页面是 tab 页,tabBar 的相关配置项需完整声明,但这些字段不会作用于自定义 tabBar 的渲…

UC伯克利提出AIGC图像编辑新利器InstructPix2Pix,AI模型P图更加精细

原文链接:https://www.techbeat.net/article-info?id4375 作者:seven_ 最近的一些工作向我们展示了AIGC在创造性生成图像、视频等方面的潜力,相信已有很多研究者在沿着这一方向进行拓展式的挖掘和创新。目前已有很多衍生应用出现在了大家眼前…

Java中的类和对象

文章目录1.面向对象和面向过程的含义2.类的定义与使用2.1什么是类2.2类的定义和格式2.3类名的修改方法![在这里插入图片描述](https://img-blog.csdnimg.cn/f126dbd47491402e93bc83bc07f51673.png)3.类和对象3.1类的实例化3.2成员的访问4.this引用4.1为何要this引用4.2什么是th…

java和vue的学生健康管理系统疫情打卡系统

需求:关注学生健康数据以及疫情打卡 系统分两个角色:学生和管理员 演示视频 https://www.bilibili.com/video/BV1iD4y1h74F/?share_sourcecopy_web&vd_sourceed0f04fbb713154db5cc611225d92156 技术:springbootvueelementuipagehelperm…

医疗器械实验室设计基本要求SICOLAB

医疗器械实验室设计基本要求SICOLAB 医疗器械实验室设计、医疗器械实验室装修、医疗器械实验室建设SICOLAB 一、实验室分类 (一)基础实验室 生物学评价检验实验室、电气安全检验实验室、环境试验检验实验室、手术医疗器械检验实验室、医用材料检验实…

【图像去噪】双立方插值和稀疏表示图像去噪【含Matlab源码 2009期】

⛄一、稀疏表示模型简介 图像的稀疏表示能够更好地表示出图像的特征, 其理论依据就是, 有用的图像信号是有序的, 而噪声普遍是杂乱无章的, 因此可以提取出能够表示图像特有奇异性特征的信息, 比如边缘、线段、条纹、端点等, 再用特定的过完备字典中的原子进行线性组合, 重构出…

JDK的安装及环境变量配置

一、应用安装 1、可以在官网下载jdk,(http://www.oracle.com/)下载自己适用的版本。 2、双击下载的 .exe安装包文件,如 jdk-8u131-windows-x64.exe。 3、进入安装向导。 4、点击下一步,更改安装路径,我选择安装在d盘…

30分钟看懂linux内核 - page介绍

【推荐阅读】 浅析linux内核网络协议栈--linux bridge 深入理解SR-IOV和IO虚拟化 了解Docker 依赖的linux内核技术 浅谈linux 内核网络 sk_buff 之克隆与复制 深入linux内核架构--进程&线程 内核中最初勾引我好奇心的还是内存管理方面,我们平时编写应用程…

代码随想录训练营第53天|LeetCode 1143.最长公共子序列、1035.不相交的线、53. 最大子序和

参考 代码随想录 题目一:LeetCode 1143.最长公共子序列 确定dp数组下标及其含义 dp[i][j]:字符串text1中的0~i字符构成的字符串和字符串text2中的0~j字符构成的字符串的最长 公共子序列 的长度为dp[i][j]。注意和之前做过的Leet…

将postgresql配置为Linux服务管理 systemctl service

发行版安装的数据库在装完后会自动添加数据库服务,但编译安装的不会,需要手动添加。 cd postgresql-14.0/contrib/start-scripts/ cp linux /etc/init.d/postgresql cd /etc/init.d/ vi postgresql 修改以下部分 ## EDIT FROM HERE# Installation pre…

Vuex4.0.0 源码解析

本文章基于以下版本撰写 VUE 版本: 3.0VUEX 版本:4.0.0Vuex仓库:https://github.com/vuejs/vuex/tree/v4.0.0Vux文档:https://vuex.vuejs.org/zh/ 在 vue 中使用 vuex import { createApp } from vue import { createStore } f…

C语言中函数的先后关系,java和C语言的语法区别

以上代码中,sum函数在上面,main函数在下面,在main函数中就可以调用sum函数。 如果sum函数定义在main函数后面,则需要在main函数前面声明sum函数。即在main函数前面写:void sum(int begin, int end); C语言中&#xf…

EMC测试中的电流探头

专栏 专注介绍电磁兼容(EMC)的相关知识,算是对本人浸染 EMC 专业十余年的一个阶段小结 。 本文目录1.EMC测试中的电流探头是什么?2.电流探头的主要指标要求3.什么是转移阻抗?1.EMC测试中的电流探头是什么? …

校园兼职网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 网站前台:关于我们、联系我们、资讯信息、企业信息、职位信息 管理员模块: 1、管理关于我们、联…

vTESTstudio入门到精通 - vTESTstudio工具栏介绍_File

vTESTstudio作为跟CANoe工具并套使用的一个强大的工具,那么想要用好它就得对他有个全面的认识,第一步起码要知道tade工具栏都包含哪些功能要清楚,今天我们就着重分享下vTESTstudio工具栏包含哪些内容,以便在我们编程的时候更好的去…