升级为带有选择框

分三种查看格式一种是表格查看 一种是文本查看 一种是列表

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可视化之文件内容查找(升级篇)的更多相关文章

  1. TK可视化之文件内容查找

    1.内容输出类 import tkinter import python基础.day15.搜索数据可视化.BigDataFind class InputViem(): def __init__(sel ...

  2. ubuntu下文件内容查找命令

    Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名 例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件 ...

  3. [Linux] find文件查找和grep文件内容查找

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的: (1)find命令:根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时 ...

  4. [转帖]linux下的find文件查找命令与grep文件内容查找命令

    linux下的find文件查找命令与grep文件内容查找命令 https://www.cnblogs.com/shileima/p/8431393.html 在使用linux时,经常需要进行文件查找. ...

  5. linux下的find文件查找命令与grep文件内容查找命令

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...

  6. linux下文件内容查找 转

    find | xargs grep test find命令和xargs命令 网友:wuye_chinaunix 发布于: : (共有条评论) 查看评论 | 我要评论 青云 分配文件 - -| 回首页 ...

  7. linux几种常见的文件内容查找和替换命令

    作为一个以前没怎么接触过linux的小白,开始使用linux,各种不习惯,这周遇到一个文件内容测查找和替换的需求.学习了以下几种实现方式: 1.vi命令下的查找和替换 1.1 vi下的查找 /patt ...

  8. 嵌入式开发之命令行---linux下的find文件查找命令与grep文件内容查找命令

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...

  9. linux命令按文件内容查找文件

    [root@hn web]# find /app/code/hzg/web/ -type f -name "*.php" | xargs grep "slog"

随机推荐

  1. vuex快速入门

    vuex是什么? vuex是一个专门为vue.js应用程序开发的状态管理模式. vuex默认的五种基本的对象: state:存储状态(可以理解为变量)可以从计算属性中返回某个状态 getters:通常 ...

  2. javaweb入门-----request与response的作用

    request对象和request对象的原理 1.request和response对象request对象和request对象的原理时由服务器创建的,我们来使用它们 2.request对象是来获取请求消 ...

  3. 深入理解HashMap(jdk7)

    HashMap的结构图示 ​ jdk1.7的HashMap采用数组+单链表实现,尽管定义了hash函数来避免冲突,但因为数组长度有限,还是会出现两个不同的Key经过计算后在数组中的位置一样,1.7版本 ...

  4. S2:ArrayList

    1.ArrayList   ArrayList非常类似于数组,也有人称它为数组列表,ArrayList可以动态维护. 因为数组的长度是固定的,而SArrayList的容量可以根据需要自动扩充. Arr ...

  5. containerd与kubernetes集成

    kubernetes集群三步安装 概念介绍 cri (Container runtime interface) cri is a containerd plugin implementation of ...

  6. 利用jQuery中的serialize方法大量获取页面中表单的数据,发送的服务器

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. php sql 类似 mybatis 传参

    PHP sql 处理上,没有类似于 java mybatis 的工具,导致进行一些sql 处理时,会有诸多不便, 楼主抽时间写了一个 php 类似 mybatis 的sql 工具,省去了拼装sql 的 ...

  8. FutrueTask原理及源码分析

    1.前言 相信很多人了解到FutureTask是因为ThreadPoolExecutor.submit方法,根据ThreadPoolExecutor.submit的使用,我们可以先猜一下FutureT ...

  9. 2019最新最全Java开发面试常见问题答案总结

    2019最新最全Java开发面试常见问题答案总结 马上准备9月份出去面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个学习笔记,摘录自各个博文以及总结. 1.JAVA面向对象的特 ...

  10. JavaScript数据结构——队列的实现与应用

    队列与栈不同,它遵从先进先出(FIFO——First In First Out)原则,新添加的元素排在队列的尾部,元素只能从队列头部移除. 我们在前一篇文章中描述了如何用JavaScript来实现栈这 ...