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 流程控制实例代码
Sep 25 Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
Python 自动化表单提交实例代码
Jun 08 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
创建pycharm的自定义python模板方法
May 23 Python
解决Pycharm出现的部分快捷键无效问题
Oct 22 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 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
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
JavaScript中的&quot;=、==、===&quot;区别讲解
2019/01/22 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
python实现点对点聊天程序
2018/07/28 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
python可迭代对象去重实例
2020/05/15 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
环卫工人节活动总结
2014/08/29 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
给医院的感谢信
2015/01/21 职场文书
监守自盗观后感
2015/06/10 职场文书
公司人力资源管理制度
2015/08/05 职场文书
2015中秋祝酒词
2015/08/12 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书