python 按行查找文本文件,找出答案,并提示置顶答案
1。整理好答案文件为文本文件;不能有空行;每个题干前有数字做为题号;每个题答案第一个字符为字母,答案占一行import time
import time
import sys
import os
import re
import tkinter
import tkinter.messagebox #这个是消息框,对话框的关键
#sys.path.append(os.path.abspath("SO_site-packages"))
import win32api,win32con
import pyperclip # 引入模块
#f = open("bbb.txt")
def showMsg(acc): #提示框
top=tkinter.Tk()
top.withdraw()
top.update()
mes=tkinter.messagebox.showinfo('提示', acc)
top.mainloop()
#top.destroy()
return mes
print("aaa.txt作为答案文件要求:放在当前目录中;不能有空行;每个题占两行,第一行题干,以数字开头;第二行是答案,以字母开头;用鼠标选择,用CTRL+C键盘复制效果好;按ENTER继续")
os.system("pause")
recent_value = ""
tmp_value="" # 初始化(应该也可以没有这一行,感觉意义不大。但是对recent_value的初始化是必须的)
while True:
tmp_value = pyperclip.paste() # 读取剪切板复制的内容
#print("tmp_value:"+tmp_value)
print("recent_value:"+recent_value)
if tmp_value != recent_value:
#print(tmp_value)#如果检测到剪切板内容有改动,那么就进入文本的修改
recent_value=tmp_value
#print(recent_value)
#f = open("aaa.txt") #aa.txt作为答案文件要求:不能有空行;每个题占两行,第一行题干,以数字开头;第二行是答案,以字母开头
with open("aaa.txt","r") as f:
line = f.readline() # 调用文件的 readline()方法
av=""
while line:
if len(line.strip())>0:
if line.strip()[0].isdigit():
a1=line
bz=1
if line.strip()[0].isalpha():
a2=line
bz=2
if line.find(tmp_value)>-1:
if bz==2:
av=av+a1+a2
if bz==1:
line = f.readline()
av=av+a1+line
#print(line)
line=f.readline()
continue
if len(av)!=0:
top=tkinter.Tk()
#top.withdraw()#这行可以隐藏主窗口,但又不置顶消息窗口,所以关了
mes=tkinter.messagebox.showinfo('提示', av)
top.wm_attributes('-topmost',1) #置顶消息窗口
top.destroy()#关闭消息窗口
#print(tmp_value)
continue
#continue
continue
python 按行查找文本文件,找出答案,并提示置顶答案的更多相关文章
- python -- 对list去重并找出列表list中的重复元素
一.一个列表中可能含有重复元素,使用set()可以实现列表的去重处理,但是无法知道哪些元素是重复的,下面的函数用于找出哪些元素重复了,以及重复的次数. 代码: from collections imp ...
- Python每日一练(2):找出html中的所有链接(Xpath、正则两个版本)
要在hrml文件中找出特定的内容,首先需要观察该内容是什么东西,在什么位置,这样才能找出来. 假设html的文件名称是:"1.html".href属性全都在a标签里. 正则版: # ...
- python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串
1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件, 第一个字母和最后一个字符是第一次重复 这个子字符串的中间字母没有重复 这个 ...
- python经典算法题目:找出这两个有序数组的中位数
题目:找出这两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以 ...
- 记录:50多行程序中找出多写的一个字母e
小霍同学调程序,做的是第11周的项目1 - 存储班长信息的学生类,可是她写的程序(就在以下),呃,请读者自己执行一下吧.(下午在机房调试时用的是Code::Blocks10.05.输出的是非常长的莫名 ...
- python的自省函数, 快速找出BUG的良器
python内置的好多自省函数, 合理使用可快速查找相关提示, 快速找到问题点, 以下开始具体说明 1. dir() 列出对象的所有属性和方法 如: dir(list) 可以列出列表的所有属性 ...
- Python强化训练笔记(五)——找出多个字典中的公共键
在这个问题中,我们期望得到的结果是找到这三轮比赛中,每轮都进球的球员都有谁.下面用python来模拟一下,先生成一批数据: >>> from random import randin ...
- 我用 Python 找出了删除我微信的所有人并将他们自动化删除了
1. 概述 不知你是否遇到过在微信上给通讯录中的某个人发消息,结果出现了这一幕: 平时一直认为自己的心里素质过硬,不过遇到这种情况 ... 在我缓了半个钟头(半分钟)之后,缓缓拿出了手机,打开微信,找 ...
- 3.1.g 找出在2009年秋季拥有最多选课人数的课程段
3.1.g 找出在2009年秋季拥有最多选课人数的课程 3.1 使用大学模式,用SQL写出如下查询. g) 找出在2009年秋季拥有最多选课人数的课程段. 注:本题来自于 数据库系统概念 第六版 机械 ...
随机推荐
- YOLOV4知识点分析(二)
YOLOV4知识点分析(二) 6. 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org ...
- TVM安装常用问题
TVM安装常用问题 如何添加新的硬件后端 如果硬件后端支持LLVM,则可以通过设置正确的目标三元组来直接生成代码target. 如果目标硬件是GPU,请尝试使用cuda,opencl或vulkan后端 ...
- MEMS传感器作为变革的驱动力
MEMS sensors as drivers for change 物联网(IoT)正在改变与周围世界互动的方式.每个人,每件事,都是相互联系的,很快就会相互联系.微机电系统(MEMS)设备和传感器 ...
- Spring Cloud06: Ribbon 负载均衡
一.使用背景 前面的学习中,我们已经使用RestTemplate来实现了服务消费者对服务提供者的调用,如果在某个具体的业务场景下,对某个服务的调用量突然大幅提升,这个时候就需要对该服务实现负载均衡以满 ...
- 工作流引擎Activiti使用进阶!详细解析工作流框架中高级功能的使用示例
Activiti高级功能简介 Activit的高级用例,会超越BPMN 2.0流程的范畴,使用Activiti高级功能需要有Activiti开发的明确目标和足够的Activiti开发经验 监听流程解析 ...
- Task01:初识数据库
本章主要讲解数据库安装和数据库基本介绍,考虑易用性及普及度,本课程采取mysql进行教学. 1.1 初识数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.该数据集合称 ...
- 实验5、Flask设计模式和Web服务体验
1. 实验内容 Flask appbuilder包括基本的表单验证,内置管理模块.本节主要学习Flask appbuilder的后台管理模块使用和对Flask设计模式拓展作简要介绍 2. 实验要点 掌 ...
- WIN10无法进行Android应用开发真机调试解决方案
在WIN10操作系统进行ANDROID开发真机调试时,遇到的问题主要归纳一下有以下几点: 一.没有打开"USB调试"项.这点不再赘述: 二.没有安装ADB Interface驱动: ...
- zookeeper集群及kafka集群搭建
1.zookeeper集群搭建 1.1 上传安装包 官网推荐至少3个节点,我们这里也用三个节点192.169.2.18 192.169.1.82 192.169.1.95 准备好安装包,zooke ...
- JAVA实现按列表中元素的时间字段排序
JAVA代码实现按列表中元素的时间字段排序 导语: 工作中遇到一个问题,调用第三方接口返回的数据没有按时间倒序排列,测试说要加,然后在网上找到一个解决办法,这里记录一下 需求: 如下图列表,按生日进行 ...