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程序中的运用
Mar 02 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
Python使用zip合并相邻列表项的方法示例
Mar 17 Python
儿童编程python入门
May 08 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
Python根据服务获取端口号的方法
Sep 25 Python
Tensorflow分批量读取数据教程
Feb 07 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
Python中相见恨晚的技巧
Apr 13 Python
python 模块重载的五种方法
Apr 24 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
php实现搜索类封装示例
2016/03/31 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
javascript 自定义事件初探
2009/08/21 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
Angular2 组件交互实例详解
2017/08/24 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
查看django版本的方法分享
2018/05/14 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
电气工程和自动化自荐信范文
2013/12/25 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
党员违纪检讨书
2014/02/18 职场文书
《掌声》教学反思
2014/02/23 职场文书
教育技术职业规划范文
2014/03/04 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
党员思想汇报材料
2014/12/19 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题