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+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
python select.select模块通信全过程解析
Sep 20 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
对Python中画图时候的线类型详解
Jul 07 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
Aug 09 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
Python3列表List入门知识附实例
Feb 09 Python
关于Python错误重试方法总结
Jan 03 Python
Python基础之元组与文件知识总结
May 19 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对象的浅复制与深复制的实例详解
2017/10/26 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
在Python中使用判断语句和循环的教程
2015/04/25 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
Python实现多线程的两种方式分析
2018/08/29 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
python 实现波浪滤镜特效
2020/12/02 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
招商引资工作汇报
2014/10/28 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技
python超详细实现完整学生成绩管理系统
2022/03/17 Python
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫