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 相关文章推荐
Python3 能振兴 Python的原因分析
Nov 28 Python
Python实现统计文本文件字数的方法
May 05 Python
Python程序员面试题 你必须提前准备!
Jan 16 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
python求质数的3种方法
Sep 28 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 Python
 python中的元类metaclass详情
May 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
布同自制Python函数帮助查询小工具
2011/03/13 Python
python下MySQLdb用法实例分析
2015/06/08 Python
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python中类的初始化特殊方法
2017/12/01 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python简单实现AES加密和解密
2019/03/28 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
我的大学生活职业生涯规划
2014/01/02 职场文书
维修工先进事迹
2014/05/29 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
Java 在生活中的 10 大应用
2021/11/02 Java/Android