TK可视化之文件内容查找(升级篇)
升级为带有选择框
分三种查看格式一种是表格查看 一种是文本查看 一种是列表

1.列表查看类
# listbox 显示数据
import tkinter
class ListShowData:
def __init__(self):
self.win=tkinter.Tk() # 构造窗体
self.mylist=tkinter.Listbox(self.win,width=100) #列表框
self.mylist.pack() def adddata(self,insertstr):
self.mylist.insert(tkinter.END,insertstr) def show(self):
self.win.mainloop() # 进入消息循环 if __name__ == '__main__':
listshow = ListShowData()
listshow.adddata(123)
listshow.adddata(123)
listshow.adddata(123)
listshow.show()
2.文本查看类
# text文件模式显示数据
import tkinter class TextShowData:
def __init__(self):
self.win = tkinter.Tk() # 构造窗体
self.text = tkinter.Text(self.win, width=100) # 列表框
self.text.pack() def adddata(self, insertstr):
self.text.insert(tkinter.INSERT, insertstr) def show(self):
self.win.mainloop() # 进入消息循环 if __name__ == '__main__':
listshow =TextShowData()
listshow.adddata("123\r\n")
listshow.adddata("123\r\n")
listshow.adddata("123\r\n")
listshow.adddata("123\r\n") listshow.show()
3.表格查看
# tree表格显示数据
import tkinter
from tkinter import ttk class TableShowData():
def __init__(self):
self.win=tkinter.Tk()
self.win.geometry("1000x1000+100+100") self.idnum = 0 # 表示插入的行数 self.tree=ttk.Treeview(self.win,height=500) # 表格 self.tree["column"]=("用户","密码","邮箱")
self.tree.column("用户",width=200) # 表示列,不显示
self.tree.column("密码",width=200)
self.tree.column("邮箱",width=200) self.tree.heading("用户",text="用户")
self.tree.heading("密码",text="密码")
self.tree.heading("邮箱",text="邮箱") self.tree.pack() def adddata(self,insertstr): # 增加数据
datalist=insertstr.split(" # ")
if len(datalist) == 3:
self.tree.insert("",self.idnum,text=(self.idnum+1),values=(datalist[0],
datalist[1],
datalist[2]))
self.idnum+=1
def show(self):
self.win.mainloop() if __name__ == '__main__':
mytable=TableShowData()
mytable.adddata("19810831 # 273018 # wangweirun@sina.com")
mytable.adddata("19811103 # 74215 # luckyydd@263.net")
mytable.adddata("198212160123 # 433318 # xpj-1216@163 com")
mytable.show()
4.数据查询类
import codecs
import python基础.day16.图形化编程.listshow
import python基础.day16.图形化编程.textshow
import python基础.day16.图形化编程.tableshow
class BigDataFind():
def __init__(self,path,howtoshow):
self.file = codecs.open(path,"rb","gbk","ignore") # 打开文件
self.howtoshow=howtoshow
self.showview=None # 窗体-创建 if self.howtoshow=="listshow":
self.showview=python基础.day16.图形化编程.listshow.ListShowData() elif self.howtoshow=="textshow":
self.showview = python基础.day16.图形化编程.textshow.TextShowData() elif self.howtoshow=="tableshow":
self.showview = python基础.day16.图形化编程.tableshow.TableShowData() def find(self,searchstr):
while True:
line = self.file.readline()
if line.find(searchstr) != -1:
print(line,end="") # 显示数据
# 插入
if self.showview != None:
# 显示
self.showview.adddata(line)
if not line: # 找不到数据
break def show(self):
if self.showview != None: # 显示
self.showview.show() # 显示查找到的内容 def __del__(self):
self.file.close() if __name__ == '__main__':
bigfind = BigDataFind(路径,使用那个方法显示)
bigfind.find(查找内容)
bigfind.show()
5.输入窗口
import tkinter
from tkinter import ttk
from python基础.day16.图形化编程.bigdatafind import BigDataFind
class InputViem():
def __init__(self):
self.win =tkinter.Tk()
self.win.geometry("900x300+0+0") # 输入框
self.entry=tkinter.Entry(self.win) #input
self.entry.place(x=0,y=0) # 按钮
self.button=tkinter.Button(self.win,text="搜索",command=self.search)
self.button.place(x=150,y=0) # 类型组合框1
self.comvalue=tkinter.StringVar() #窗体的自带文本 新建一个值
self.comboxlist=ttk.Combobox(self.win,
textvariable=self.comvalue)
self.comboxlist["values"]=("listshow","tableshow","textshow")
self.comboxlist.current(0) #默认显示第一个
self.comboxlist.bind("<<ComboboxSelected>>", self.go) # 绑定组合框事件
self.comboxlist.place(x=0,y=100) # 文件组合框2
self.comvalueFile = tkinter.StringVar() # 窗体的自带文本 新建一个值
self.comboxlistFile = ttk.Combobox(self.win,
textvariable=self.comvalueFile,
width=90)
self.comboxlistFile["values"] = (r"G:\我的python\python基础\大数据相关数据\csdn.txt",
r"G:\我的python\python基础\大数据相关数据\QQ.txt",
r"G:\我的python\python基础\大数据相关数据\kaifang.txt" )
self.comboxlistFile.current(0)
self.comboxlistFile.bind("<<ComboboxSelected>>", self.goFile) # 绑定组合框事件
self.comboxlistFile.place(x=0, y=200) def go(self,*tuple):
print(self.comboxlist.get()) def goFile(self,*tuple):
print(self.comboxlistFile.get()) def show(self):
self.win.mainloop() def search(self):
print(self.entry.get())
print(self.comboxlist.get())
bigfind = BigDataFind(self.comboxlistFile.get(), self.comboxlist.get())
bigfind.find(self.entry.get())
bigfind.show() if __name__ == '__main__':
win=InputViem()
win.show()
TK可视化之文件内容查找(升级篇)的更多相关文章
- TK可视化之文件内容查找
1.内容输出类 import tkinter import python基础.day15.搜索数据可视化.BigDataFind class InputViem(): def __init__(sel ...
- ubuntu下文件内容查找命令
Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名 例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件 ...
- [Linux] find文件查找和grep文件内容查找
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的: (1)find命令:根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时 ...
- [转帖]linux下的find文件查找命令与grep文件内容查找命令
linux下的find文件查找命令与grep文件内容查找命令 https://www.cnblogs.com/shileima/p/8431393.html 在使用linux时,经常需要进行文件查找. ...
- linux下的find文件查找命令与grep文件内容查找命令
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...
- linux下文件内容查找 转
find | xargs grep test find命令和xargs命令 网友:wuye_chinaunix 发布于: : (共有条评论) 查看评论 | 我要评论 青云 分配文件 - -| 回首页 ...
- linux几种常见的文件内容查找和替换命令
作为一个以前没怎么接触过linux的小白,开始使用linux,各种不习惯,这周遇到一个文件内容测查找和替换的需求.学习了以下几种实现方式: 1.vi命令下的查找和替换 1.1 vi下的查找 /patt ...
- 嵌入式开发之命令行---linux下的find文件查找命令与grep文件内容查找命令
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...
- linux命令按文件内容查找文件
[root@hn web]# find /app/code/hzg/web/ -type f -name "*.php" | xargs grep "slog"
随机推荐
- PHP与ECMAScript_1_变量与常量
PHP ECMAScript 变量命名规则 (相同点) 变量包含:字母.数字.下划线字符 变量只能以字母或下划线开头 变量不能以数字开头 变量名是区分大小写 变量包含:字母.数字.下划线字符 变量只能 ...
- PyCharm 配置 Git 教程
之前给大家介绍了 Git 安装及使用指南,今天再给大家介绍一下在 PyCharm 中使用 Git. 1 打开 File -> Settings -> Version Control -&g ...
- PHP xdebug API接口优化揪出了getimagesize这个鬼
在API优化list中,公司客户系统的服务号客服有个获取聊天消息的接口getHistory请求时间很长,就去优化了下,记下过程. 一,配置环境,追踪使用Xdebug: 1.在https://xdebu ...
- 完美解决windows10磁盘占用100%并出现卡顿、假死无反应
完美解决windows10磁盘占用100%并出现卡顿.假死无反应 想必大家也跟我一样,自从用win10系统以后经常会出现这种情况:磁盘突然占用100%然后开始出现假死现象,电脑卡住,点击任何软件没反应 ...
- 夯实Java基础(三)——面向对象之继承
1.继承概述 继承是Java面向对象的三大特征之一,是比较重要的一部分,与后面的多态有着直接的关系.继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法, ...
- Codeforces 468C Hack it!
https://www.luogu.org/problemnew/show/CF468C http://codeforces.com/contest/468/problem/C #include &l ...
- C# Winform 自定义控件——竖着的Navbar
效果: 描述: 这是一个可折叠的菜单导航,主要是由panel.picturebox.label完成,界面的颜色用来区分一下各个组合控件,便于调试. 首先,首先是ImageButton: 这个是由Pic ...
- STM32实现Airplay音乐播放器
AirPlay是苹果公司推出的一套无线音乐解决方案,我们手里的iPhone.iPad甚至是Apple Watch等设备还有电脑上的iTunes都支持AirPlay,但是支持AirPlay功能的音响设备 ...
- 深入剖析 RabbitMQ —— Spring 框架下实现 AMQP 高级消息队列协议
前言 消息队列在现今数据量超大,并发量超高的系统中是十分常用的.本文将会对现时最常用到的几款消息队列框架 ActiveMQ.RabbitMQ.Kafka 进行分析对比.详细介绍 RabbitMQ 在 ...
- 消息中间件-activemq实战之整合Spring(四)
前面的理论准备已经很充分,这一节我们来实战:将activemq整合到Spring框架才行中,因为Spring已经集成了JMS,这也为我们配置activermq带来了方便. 1. Spring对jms的 ...