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输出一个杨辉三角的例子
Jun 13 Python
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
解析Python中的生成器及其与迭代器的差异
Jun 20 Python
wxPython之解决闪烁的问题
Jan 15 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
python实现简单银行管理系统
Oct 25 Python
Python正则表达式急速入门(小结)
Dec 16 Python
如何表示python中的相对路径
Jul 08 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
python正则表达式match和search用法实例
2015/03/26 Python
Python实现KNN邻近算法
2021/01/28 Python
Python实现抢购IPhone手机
2018/02/07 Python
Python多线程扫描端口代码示例
2018/02/09 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
django实现类似触发器的功能
2019/11/15 Python
python创建n行m列数组示例
2019/12/02 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
工程招投标邀请书
2014/01/26 职场文书
大学毕业感言50字
2014/02/07 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
中学社团活动总结
2015/05/07 职场文书
荒岛余生观后感
2015/06/09 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL