升级为带有选择框

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

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. context创建过程解析(三)之deployDirectories

    HostConfig.deployApps() //在监听到start事件类型,也就是StandardHost调用startInternal protected void deployApps() { ...

  2. 2019年一半已过,这些大前端技术你都GET了吗?- 上篇

    一晃眼2019年已过大半,年初信誓旦旦要学习新技能的小伙伴们立的flag都完成的怎样了?2019年对于大前端技术领域而言变化不算太大,目前三大技术框架日趋成熟,短期内不大可能出现颠覆性的前端框架(内心 ...

  3. zmnXAglTcg

    #include <map>#include <cmath>#include <stack>#include <queue>#include <l ...

  4. java的properties文件从数据库添加到文件

    package com.xian.jdbc; import java.io.BufferedInputStream; import java.io.FileInputStream; import ja ...

  5. 如何在MySQL中输入中文

    解决MySQL中的Incorrect string value MySQL中输入中文:在MySQL建标的时候,直接往表中的varchar(255)中输入中文的话是会报错的,大概是因为数据库的默认编码是 ...

  6. C#:正则表达式类

     Regex r = new Regex("abc"); // 定义一个Regex对象实例(Regex r = new Regex("abc", RegexOp ...

  7. EnjoyingSoft之Mule ESB开发教程第六篇:Data Transform - 数据转换

    目录 1. 数据转换概念 2. 数据智能感知 - DataSense 3. 简单数据转换组件 3.1 Object to JSON 3.2 JSON to XML 3.3 JSON to Object ...

  8. 使用阿里云oss

    写这篇博文的原因是公司有个项目需要用到阿里云来存放用户头像文件.后期软件安装版本也可能需要存进去,然后折腾了两天终于摸熟了一点皮毛,在这里给大家简单介绍下. 一.初识对象存储oss 1.进入阿里云控制 ...

  9. Java连载14-补码简介&浮点型整数

    一.补码简介 1.计算机中的符号数有三种表示方式,即为:原码.反码.补码.三种表示方法均有符号位和数值位,符号位都是0表示正数,符号位都是1表示负数. 2.计算机中的数字的存储方式:在计算机系统中,数 ...

  10. MyEclipse下安装FreeMark插件

    现在大多人人喜欢用FreeMark模板.但是这个模板在myeclipse或者是eclipse下却是不能只能提示,一大堆只是没有颜色区分的显示在哪里.万能天国总是有办法. 点我去官网下载(比较慢) 我的 ...