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实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
Python中set与frozenset方法和区别详解
May 23 Python
python算法表示概念扫盲教程
Apr 13 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
Python设计模式之命令模式简单示例
Jan 10 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
Python selenium的基本使用方法分析
Dec 21 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
不同Jquery版本引发的问题解决
2013/10/14 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
JS实现小米轮播图
2020/09/21 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
Python 功能和特点(新手必学)
2015/12/30 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python命令行工具Click快速掌握
2019/07/04 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
财务人员个人求职信范文
2013/12/04 职场文书
经典促销广告词大全
2014/03/19 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
小学作文之描写天气
2019/08/15 职场文书
导游词之凤凰古城
2019/10/22 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python