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根据给定文件返回文件名和扩展名的方法
Mar 27 Python
Python数组遍历的简单实现方法小结
Apr 27 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
Python实现的生成格雷码功能示例
Jan 24 Python
实践Vim配置python开发环境
Jul 02 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
Python threading的使用方法解析
Aug 28 Python
利用Python的sympy包求解一元三次方程示例
Nov 22 Python
Python tkinter模版代码实例
Feb 05 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
python3生成随机数实例
2014/10/20 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
创建Django项目图文实例详解
2019/06/06 Python
在django中,关于session的通用设置方法
2019/08/06 Python
pymysql 开启调试模式的实现
2019/09/24 Python
Python操作Jira库常用方法解析
2020/04/10 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
学校师德承诺书
2014/05/23 职场文书
美食节策划方案
2014/05/26 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书