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计算方程式根的方法
May 07 Python
Python读取网页内容的方法
Jul 30 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
python使用多进程的实例详解
Sep 19 Python
实例讲解python中的协程
Oct 08 Python
django Serializer序列化使用方法详解
Oct 16 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
python中几种自动微分库解析
Aug 29 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
python在package下继续嵌套一个package
Apr 14 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 验证码制作(网树注释思想)
2009/07/20 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
自动更新作用
2006/10/08 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
react-router实现按需加载
2017/05/09 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python实现简易通讯录修改版
2018/03/13 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
面包店的创业计划书范文
2014/01/16 职场文书
参观考察邀请函范文
2014/01/29 职场文书
《影子》教学反思
2014/02/21 职场文书
党员创先争优承诺书
2014/03/26 职场文书
导师推荐信范文
2014/05/09 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
PHP 时间处理类Carbon
2022/05/20 PHP