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"
随机推荐
- Android 开发使用自定义字体
有时候,系统自带的字体并不能满足我们特殊的需求,这时候就需要引用其他的字体了,可以把下载的字体文件放在 assets 目录下. 自定义字体文件不能使用xml代码读取而应该使用java代码: publi ...
- 【Android】未引入包问题
Mac 上配置 Android 开发环境,遇到了下面问题: /Users/***/Documents/SVN/Android/***/1.0.3/res/values/styles.xml:21: e ...
- tomcat配置启动文件
修改tomcat到指定文件夹 conf -> server.xml <Host name="localhost" appBase="webapps" ...
- django+uwsgi+nginx 部署生产环境
一.Uwsgi安装 python3 -m pip install uwsgi cp /usr/local/python3/bin/uwsgi /usr/bin/ 测试 在django项目主目录下cre ...
- 伽马变换(一些基本的灰度变换函数)基本原理及Python实现
1. 基本原理 变换形式 $$s=cr^{\gamma}$$ c与$\gamma$均为常数 可通过调整$\gamma$来调整该变换,最常用于伽马校正与对比度增强 2. 测试结果 图源自skimage ...
- CentOS 7服务器安装brook和bbr加速
一.安装Brook 执行一键部署脚本 $ wget -N --no-check-certificate wget -N --no-check-certificate https://raw.githu ...
- Flink+Druid构建实时OLAP的探索
场景 k12在线教育公司的业务场景中,有一些业务场景需要实时统计和分析,如分析在线上课老师数量.学生数量,实时销售额,课堂崩溃率等,需要实时反应上课的质量问题,以便于对整个公司的业务情况有大致的了解. ...
- Java小白进阶之值传递-引用传递
class ClassA{ int value;//成员变量 } public class TestClassA{ public static void main(String args[]){ in ...
- JAVA基础知识(九)Java 异常
Throwable是Error和Exception的基类 Exception(异常) :是程序本身可以处理的异常. Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或者发 ...
- 以kaldi中的yesno为例谈谈transition
在基于GMM-HMM的传统语音识别里,比音素(phone)更小的单位是状态(state).一般每个音素由三个状态组成,特殊的是静音(SIL)由五个状态组成.这里所说的状态就是指HMM里的隐藏的状态,而 ...