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定时器使用示例分享
Feb 16 Python
Python设计模式之抽象工厂模式
Aug 25 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
基于python实现名片管理系统
Nov 30 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
python脚本执行CMD命令并返回结果的例子
Aug 14 Python
python tkinter组件使用详解
Sep 16 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
用Python 执行cmd命令
Dec 18 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
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
js实现自定义路由
2017/02/04 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
基于Python的关键字监控及告警
2017/07/06 Python
Python3实现转换Image图片格式
2018/06/21 Python
Python连接Redis的基本配置方法
2018/09/13 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
python绘制直方图和密度图的实例
2019/07/08 Python
python实现翻译word表格小程序
2020/02/27 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
如何在Shell脚本中使用函数
2015/09/06 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
护理不良事件检讨书
2014/02/06 职场文书
摄影助理岗位职责
2014/02/07 职场文书
信访稳定工作汇报
2014/10/27 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
优质护理心得体会
2016/01/22 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
Golang 对es的操作实例
2022/04/20 Golang