GUI 文件遍历系统 (listdir.py)可显示中文目录文件版

这个应用程序是一个目录树遍历工具。它从当前目录开始并提供文件列表功能。双击列表中的任意其他目录都会让该工具转向这个新的目录,同时用新目录中的文件列表替换原有的文件列表。

运行效果图:

#coding:gbk
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=‘Directory Lister v1.1‘)
        self.label.pack()
        self.cwd = StringVar(self.top)
        self.dir1 = Label(self.top,fg=‘blue‘,font=(‘Helvetica‘,12,‘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=unicode(os.getcwd(),‘gbk‘))
        self.dirs.delete(0,END)
        self.dirs.insert(END,os.curdir)
        self.dirs.insert(END,os.pardir)
        for eachFile in dirlist:
            try:
                eachFile=unicode(eachFile,‘gbk‘)
            except:
                pass
            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()
时间: 2024-10-08 00:45:02

GUI 文件遍历系统 (listdir.py)可显示中文目录文件版的相关文章

中文目录文件显示问题

如果想让中文目录下的文件正常显示,可使用下面的方法: #-*-coding:utf-8-*- import os filenames = os.listdir('E:\迅雷下载'.decode('utf8').encode('gbk')) #返回一个list,只能通过分片返回结果值,decode进行解码,encode进行编码 for i in filenames:   print i.decode('gbk') #再次解码 ------------------------------------

iOS调用系统相册、相机 显示中文标题

最近做头像上传功能需要使用系统相册.相机,在调用系统相册.相机发现是英文的系统相簿界面后标题显示"photos",但是手机语言已经设置显示中文,纠结半天,最终在info.plist设置解决问题. 发现在项目的info.plist里面添加Localized resources can be mixed YES(表示是否允许应用程序获取框架库内语言)即可解决这个问题.特此记录下以便以后查看和别人解决问题

linux下访问中文目录文件

文件路径包含中文时,可输入部分文件名,然后按Tab键. 当路径包含中文括号时,用斜杠,如: \(….\) . 也可用 ls -li ,先查看inum(inode编号),然后再根据编号进行访问,用查找命令 $(find -inum …),如下图: 另外补充部分find命令: find / -amin -10 # 查找在系统中最后10分钟访问的文件find / -atime -2 # 查找在系统中最后48小时访问的文件find / -empty # 查找在系统中为空的文件或者文件夹find / -g

spl处理文件(文件详细信息、文件遍历、查询指定行、写入CSV文件)

<?php /** * 文件操作 */ //常用操作 $file = new SplFileInfo('D:/workspace/xlyy/spl/test.txt'); $file_info = array( 'getATime' => $file->getATime(), //最后访问时间 'getBasename' => $file->getBasename(), //获取文件名 'getCTime' => $file->getCTime(), //获取in

iOS 使用系统相机、相册显示中文

在调用系统相机时,"cancel" 改为"取消",调用系统相册时,"photos" 改为 "相机",方法如下: 1.在 info.plist 添加 Localized resources can be mixed  并设值为YES 表示是否允许应用程序获取框架库内语言. 2.在info.plist 中添加或修改 Localization native development region 选择 china 3.添加本地语言包

显示隐藏目录文件

进入终端,输入命令行: 对于OS X Mavericks 10.9: defaults write com.apple.finder AppleShowAllFiles TRUE 对于以前的OS X版本, defaults write com.apple.Finder AppleShowAllFiles TRUE 为了重启Finder应用,输入 killall Finder 关闭将TRUE 改为FALSE 即可

centos 7.6 安装配置nginx (显示中文目录,带密码验证)

yum install -y nginx service nginx start 配置文件重新生效 nginx -s reload 配置文件所在目录 vim /etc/nginx/nginx.conf 38 server { 39 listen 80 default_server; 40 listen [::]:80 default_server; 41 server_name _; 42 # root /usr/share/nginx/html; 43 44 # Load configurat

嵌入式 Linux系统编程(五)——目录文件函数

嵌入式 Linux系统编程(五)--目录文件函数 Linux中目录也是文件,目录操作函数为标准IO库函数.主要函数如下: #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); DIR *fdopendir(int fd); 成功返回一个指向目录流的指针,失败返回NULL,并且设置errno全局变量. #include <dirent.h> struct dirent *rea

文件分发系统

文件分发系统 一个机器上的多个文件要同步到多台机器上,该如何处理? 需求:将192.168.221.10机器上的/aa/aa.txt./bb/bb.txt./cc/cc.txt./dd/dd.txt同步到192.168.221.20,192.168.221.30这两台机器上 在192.168.221.10机器上创建aa/aa.txt./bb/bb.txt./cc/cc.txt./dd/dd.txt mkdir {/aa/,/bb/,/cc/,/dd/} echo "aa" > /