Python编程之gui程序实现简单文件浏览器代码


Posted in Python onDecember 08, 2017

本文主要分享了关于在python中实现一个简单的文件浏览器的代码示例,代码及展示如下。

#!/usr/bin/env python
# -*- coding: UTF-8 -*- 
import os
from time import sleep
from Tkinter import * 

class DirList(object):
  def __init__(self, initdir=None):
    '''构造函数,说明版本信息'''
    self.top = Tk()
    self.label = Label(self.top, 
      text = 'My directory Lister v1.1')
    self.label.pack()
    self.cwd = StringVar(self.top)
    self.dir1 = Label(self.top, 
      fg='blue', font=('Helvetica', 22, 'bold'))
    self.dir1.pack()
    self.dirfm = Frame(self.top)
    self.dirsb = Scrollbar(self.dirfm)
    self.dirsb.pack(side=RIGHT, fill=Y)
    self.dirs = Listbox(self.dirfm, height=15,
      width=50, yscrollcommand=self.dirsb.set)
    self.dirs.bind('<Double-1>', self.setDirAndGo)
    self.dirsb.config(command=self.dirs.yview)
    self.dirs.pack(side=LEFT, fill=BOTH)
    self.dirfm.pack()
    self.dirn = Entry(self.top, width=50,
      textvariable=self.cwd)
    self.dirn.bind('<Return>', self.doLS)
    self.dirn.pack()
    self.bfm = Frame(self.top)
    self.clr = Button(self.bfm, text='Clear',
      command = self.clrDir,
      activeforeground = 'white',
      activebackground = 'blue')
    self.ls = Button(self.bfm, 
      text = 'List Directory',
      command = self.doLS,
      activeforeground = 'white',
      activebackground = 'green')
    self.quit = Button(self.bfm, text='Quit',
      command=self.top.quit,
      activeforeground='white',
      activebackground='red')
    self.clr.pack(side=LEFT)
    self.ls.pack(side=LEFT)
    self.quit.pack(side=LEFT)
    self.bfm.pack()
    if initdir:
      self.cwd.set(os.curdir)
      self.doLS()
  def clrDir(self, ev=None):
    self.cwd.set('')
  def setDirAndGo(self, ev=None):
    self.last = self.cwd.get()
    self.dirs.config(selectbackground='red')
    check = self.dirs.get(self.dirs.curselection())
    if not check:
      check = os.curdir
    self.cwd.set(check)
    self.doLS()
  def doLS(self, ev=None):
    error = ''
    tdir = self.cwd.get()
    if not tdir: tdir = os.curdir

    if not os.path.exists(tdir):
      error = tdir + ': no such file'
    elif not os.path.isdir(tdir):
      error = tdir + ': not a directory'
    if error:
      self.cwd.set(error)
      self.top.update()
      sleep(2)
      if not (hasattr(self, 'last') \
        and self.last):
        self.last = os.curdir
        self.cwd.set(self.last)
        self.dirs.config(\
          selectbackground='LightSkyBlue')
        self.top.update()
        return
    self.cwd.set(\
      'FETCHING DIRECTORY CONTENTS...')
    self.top.update()
    dirlist = os.listdir(tdir)
    dirlist.sort()
    os.chdir(tdir)
    self.dir1.config(text=os.getcwd())
    self.dirs.delete(0, END)
    self.dirs.insert(END, os.curdir)
    self.dirs.insert(END, os.pardir)
    for eachFile in dirlist:
      self.dirs.insert(END, eachFile)
    self.cwd.set(os.curdir)
    self.dirs.config(\
      selectbackground='LightSkyBlue')
def main():
  d = DirList(os.curdir)
  mainloop()
if __name__ == '__main__':
  main()

结果:

Python编程之gui程序实现简单文件浏览器代码

代码实现功能较简单,感兴趣的朋友参考下吧!

以上就是本文关于Python编程之gui程序实现简单文件浏览器代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
Jun 14 Python
Python 高级专用类方法的实例详解
Sep 11 Python
Python 加密的实例详解
Oct 09 Python
python3 实现验证码图片切割的方法
Dec 07 Python
用python爬取租房网站信息的代码
Dec 14 Python
django做form表单的数据验证过程详解
Jul 26 Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
Python list和str互转的实现示例
Nov 16 Python
python 实现的截屏工具
May 08 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 #Python
python的unittest测试类代码实例
Dec 07 #Python
Python numpy 常用函数总结
Dec 07 #Python
分享6个隐藏的python功能
Dec 07 #Python
Python中pygal绘制雷达图代码分享
Dec 07 #Python
Python学习之用pygal画世界地图实例
Dec 07 #Python
用Pygal绘制直方图代码示例
Dec 07 #Python
You might like
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
改变隐藏的input中value值的方法
2014/03/19 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
简单介绍Python中的RSS处理
2015/04/13 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
详解重置Django migration的常见方式
2019/02/15 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
董事长助理岗位职责
2014/02/18 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
单位单身证明样本
2014/10/11 职场文书
保安2014年终工作总结
2014/12/06 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python