如何快速从文本中找到需要的信息,字典和正则灵活运用

import re
#打开文本文件
f = open("stock_data.txt",encoding="utf-8")
#单独读取第一行数据处理进行分割,末尾换行符去掉
headers = f.readline().strip().split(',')
print(headers)
#定义一个字典,以股标代码做为KEY,每个行做为值
stock_list = {}
for line in f:line = line.strip().split(',')print(line)stock_list[line[0]]=lineprint(type(stock_list),stock_list)
f.close()

#允许用户通过模糊查询股票名, # 比如输入“哈工”, 就把所有名称当中包含啤酒的股票都打印出来。

while True:cmd = input("请你输入你的查询指令:")for  s_id,s_data in stock_list.items():if cmd in s_data[1]:print(s_data)
# 允许按 当前价、涨跌幅、换手率 这几列来筛选信息,
# 比如输入“当前价>50”则把价格大于50的股票都打印,

这重点说明一下,输入的条件要验证合法性,列名是否在上边的三列,数值是不是合法。

continue 是继续执行,

cmd_list = re.split("[><]",cmd)
if len(cmd_list)!=2:print("你输入的筛选条件不合法,请重新输入!")continue
cmd_name, cmd_value = cmd_list
if cmd_name not in ["当前价","涨跌幅","换手率"]:print("你输入的筛选列名不合法,请重新输入!")continue
try:cmd_value = float(cmd_value)
except:print("你输入的筛选数值不合法,请重新输入!")continue

更新内容

#单独处理第一行,通过内容找到索引
headers = f.readline().strip().split(',')
header_index = headers.index(cmd_name)
print(header_index)
print(cmd_name, cmd_value)
for s_id, s_data in stock_list.items():if ">" in cmd:if float(s_data[header_index].strip("%")) > cmd_value:print(s_data)if "<" in cmd:if float(s_data[header_index].strip("%")) < cmd_value:print(s_data)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2-2 伺服电机(舵机)(meArm机械臂)

2-2 伺服电机&#xff08;舵机&#xff09;&#xff08;meArm机械臂&#xff09; 2-2 伺服电机&#xff08;舵机&#xff09;介绍直流伺服电机工作原理&#xff08;1&#xff09;首先发出指令给伺服电机&#xff0c;让其旋转90度&#xff08;2&#xff09;伺服电机接收指令&…

未来已来:探索IT行业的革新与大模型技术的突破

摘要&#xff1a; 在数字时代的浪潮中&#xff0c;IT行业正以前所未有的速度迅速发展&#xff0c;带来一系列令人瞩目的革新和进步。 从数据仓库软件市场的显著增长到色觉障碍辅助模式的扩展&#xff0c;再到国产大飞机C919的成功运营,这些新动态不仅展示了技术的力量&#xff…

MySQL学习(20):InnoDB引擎逻辑架构、物理架构

1.InnoDB逻辑结构 &#xff08;1&#xff09;表空间(在磁盘中是后缀为ibd的文件)&#xff1a;一个mysql实例可以对应多个表空间&#xff0c;用于存储记录、索引等数据。 &#xff08;2&#xff09;段&#xff1a;分为数据段、索引段、回滚段。数据段就是B树的叶子节点&#xf…

C语言典型例题31

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.8 请编写程序将China译为密码&#xff0c;密码的规律是&#xff1a;用原来字母后面的第4个字母代替原来的字母。 例如:C后面的4个字母是G&#xff0c;h后面第4个字母为l 代码&#xff1a; //《C程序设计教程…

初学者入门的可视化超级色彩公式

色彩不仅是视觉元素&#xff0c;也是数据表达的重要工具。在临床数据的可视化过程中&#xff0c;合理的色彩搭配能帮助观众迅速理解数据背后的意义。例如&#xff0c;高危状态的患者可能用红色表示&#xff0c;而健康状态用绿色表示。不同色彩之间的对比度和相对位置将决定数据…

码农的世界,不是只有技术才是王道,《码农职场》带你从另一个角度看职场

码农的职场&#xff0c;一直是一个让人津津乐道的话题&#xff1b;今天也借着这次机会&#xff0c;聊聊我眼中的【码农职场】&#xff0c;以及大佬心中的码农职场。从一幅插画说起 不知这几天从哪里传来的这么一幅画&#xff0c;画风是这样的&#xff1a; 这个故事讲述了一个名…

【数据结构初阶】队列

hello&#xff01; 目录 一、概念与结构 二、队列的实现 Queue.h Queue.c test.c 一、概念与结构 1、概念&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出的特性。 入队列&#xff1a;进行插入操作…

Visual Studio 中的Code Snippet(代码片段)功能介绍

1、Code Snippet(代码片段)功能介绍 平常我们在使用Visual Studio 进行开发时&#xff0c;可以看到Intellisense提示如下内容 这种就是代码片段的提示。如输入cw后&#xff0c;按两次Tab键&#xff0c;即可输入Console.WriteLine(); 代码片段是小块可重用代码&#xff0c;可通…

PyTorch深度学习框架

最近放假在超星总部河北燕郊园区实习&#xff0c;本来是搞前后端开发岗位的&#xff0c;然后带我的副总老大哥比较关照我&#xff0c;了解我的情况后得知我大三选的方向是大数据&#xff0c;于是建议我学学python、Hadoop&#xff0c;Hadoop我看了一下内容比较多&#xff0c;而…

Kafka生产者(二)

1、生产者消息发送流程 1.1 发送原理 在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c;Sender 线程不断从 RecordAccumulator 中拉取…

剖析算法内部结构----------贪心算法

什么是贪心算法&#xff1f; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在问题求解过程中&#xff0c;每一步都采取当前状态下最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致最终的全局最优解的算法策略。 贪心算法的核心思想是做选择时&…

StringJoiner更优雅创建含分隔符的字符序列

文章目录 1 why2 what3 how4 练习手段 1 why StringBuilder拼接包含分隔符的字符序列时&#xff0c;分隔符需要一个一个添加&#xff0c;或者需要手动删除末尾冗余的分隔符&#xff0c;代码不美观&#xff0c;不好看。 比如&#xff0c;单个字符串依次拼接时&#xff1a; Stri…

[io]进程间通信 -信号函数 —信号处理过程

sighandler_t signal(int signum, sighandler_t handler); 功能&#xff1a; 信号处理函数 参数&#xff1a; signum&#xff1a;要处理的信号 handler&#xff1a;信号处理方式 SIG_IGN&#xff1a;忽略信号 SIG_DFL&#xff1a;执行默认操作 handler&#xff1a;捕捉信 …

Ubuntu 无法进行SSH连接,开启22端口

我们在VM中安装好Ubuntu 虚拟机后&#xff0c;经常需要使用Xshell等工具进行远程连接&#xff0c;但是会出现无法连接的问题&#xff0c;原因是Ubuntu中默认关闭了SSH 服务。 1、 查看Ubuntu虚拟机IP地址 2、 利用Tabby等工具进行远程连接 命令&#xff1a;ssh ip地址 这里就是…

Ubuntu 20.04 中安装 Nginx (通过传包编译的方式)、开启关闭防火墙、开放端口号

文章目录 前言一、安装包下载二、上传服务器并解压缩三、依赖配置安装四、生成编译脚本五、编译六、查看是否编译完成七、开始安装八、查看是否安装成功九、设置为开机自启动 前言 参考大佬文章并在基础上做了点修改&#xff0c;发篇文章记录下 防止下次遇到。 参考文章&#…

leetcode169. 多数元素,摩尔投票法附证明

leetcode169. 多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] 输…

Animate软件基本概念:基本工具、工作区和颜色

在我们之前的教程中&#xff0c;有不少同学都在纠结为什么没有讲一些基本概念&#xff0c;其实我们在使用Animate软件时&#xff0c;很少会考虑某一个工具为什么这么称呼&#xff0c;它的原理又是什么&#xff0c;毕竟Animate软件只是工具。而且我们从Flash软件到现在Animate软…

008 | 基于RNN和LSTM的贵州茅台股票开盘价预测

基于RNN和LSTM的贵州茅台股票开盘价预测 项目简介&#xff1a; 本项目旨在通过使用Tushare下载贵州茅台的股票数据&#xff0c;并基于这些历史数据&#xff0c;使用TensorFlow 2.0实现循环神经网络&#xff08;RNN&#xff09;和长短期记忆网络&#xff08;LSTM&#xff09;来…

H3C MSR NAT66配置指北

正文共&#xff1a;1456 字 14 图&#xff0c;预估阅读时间&#xff1a;1 分钟 通过前面的介绍&#xff08;企业路由器配置IPv6家用宽带的PPPoE拨号示例&#xff09;&#xff0c;想必你已经可以实现让MSR路由器通过PPPoE拨号接入IPv6网络。 正常来讲&#xff0c;通过前面的配置…

Qt自定义TreeWidget,实现展开折叠按钮在右侧,且一条竖直线上对齐

效果如下&#xff1a; 图片随便找的&#xff0c;可能需要调下样式&#xff0c;代码复制可用&#xff0c;留给有需要的人。 #ifndef CustomTreeWidget_h__ #define CustomTreeWidget_h__#include <QTreeWidget> #include <QPushButton>class CCustomTreeWidget : p…