# -*- coding: cp936 -*- '''文件信息查看器,可以显示文件的路径,大小,创建日期,最后修改日期,最后访问日期'''
'''文件信息查看器,可以显示文件的路径,大小,创建日期,最后修改日期,最后访问日期''' gCurrentDir = ''
gCurrentDir = '' from Tkinter import *
from Tkinter import * import os
import os root = Tk()
root = Tk()
 Label(root,text = 'File operation demo').grid(row = 0,column = 0,columnspan = 3)
Label(root,text = 'File operation demo').grid(row = 0,column = 0,columnspan = 3) Label(root,text = 'Directories').grid(row = 1,column = 0,stick = W)
Label(root,text = 'Directories').grid(row = 1,column = 0,stick = W) Label(root,text = 'File').grid(row = 1,column = 1,stick = W)
Label(root,text = 'File').grid(row = 1,column = 1,stick = W) Label(root,text = 'File Properities').grid(row = 1,column = 2,stick = W)
Label(root,text = 'File Properities').grid(row = 1,column = 2,stick = W)
 # 得到当前目录位置
# 得到当前目录位置 gCurrentDir = os.getcwd()
gCurrentDir = os.getcwd()
 def refreshDirs(lbDirs_,curDir):
def refreshDirs(lbDirs_,curDir): '''更新目录列表
    '''更新目录列表 1.删除所有记录
    1.删除所有记录 2.插入当前目录列表
    2.插入当前目录列表 3.选中第一项
    3.选中第一项 '''
    ''' lbDirs_.delete(0,END)
    lbDirs_.delete(0,END) lbDirs_.insert(0,'.')
    lbDirs_.insert(0,'.') lbDirs_.insert(1,'..')
    lbDirs_.insert(1,'..') for item in (os.listdir(curDir)):
    for item in (os.listdir(curDir)): if os.path.isdir(curDir +(os.sep) + item):
        if os.path.isdir(curDir +(os.sep) + item): lbDirs_.insert(END,item)
            lbDirs_.insert(END,item) lbDirs_.selection_set(0)
    lbDirs_.selection_set(0) def refreshFiles(lbFiles_,curDir):
def refreshFiles(lbFiles_,curDir): '''更新文件列表
    '''更新文件列表 1.删除所有记录
    1.删除所有记录 2.插入当前目录的文件列表
    2.插入当前目录的文件列表 3.选中第一项
    3.选中第一项 '''
    ''' lbFiles_.delete(0,END)
    lbFiles_.delete(0,END) for item in (os.listdir(curDir)):
    for item in (os.listdir(curDir)): if os.path.isfile(curDir +(os.sep) + item):
        if os.path.isfile(curDir +(os.sep) + item): lbFiles_.insert(END,item)
            lbFiles_.insert(END,item) lbFiles_.selection_set(0)
    lbFiles_.selection_set(0) 
     
         def changeDir(event):
def changeDir(event): '''在目录ListBux双击时,
    '''在目录ListBux双击时, 1.改变当前路径,如果是'.'则不予处理,如果是'..',去掉最后的项,
    1.改变当前路径,如果是'.'则不予处理,如果是'..',去掉最后的项, 2.同时更新文件列表
    2.同时更新文件列表 3.更新文件显示属性'''
    3.更新文件显示属性''' global gCurrentDir
    global gCurrentDir sel = lbDirs.get(lbDirs.curselection())
    sel = lbDirs.get(lbDirs.curselection()) if sel == '.' :
    if sel == '.' : return
        return elif sel == '..':
    elif sel == '..': gCurrentDir = os.path.split(gCurrentDir)[0]
        gCurrentDir = os.path.split(gCurrentDir)[0] print gCurrentDir
        print gCurrentDir else:
    else: gCurrentDir = gCurrentDir + os.sep + sel
        gCurrentDir = gCurrentDir + os.sep + sel print gCurrentDir
        print gCurrentDir os.chdir(gCurrentDir)
    os.chdir(gCurrentDir) refreshDirs(lbDirs,gCurrentDir)
    refreshDirs(lbDirs,gCurrentDir) refreshFiles(lbFiles,gCurrentDir)
    refreshFiles(lbFiles,gCurrentDir) showProperties(event)
    showProperties(event)
 # 创建目录列表
# 创建目录列表 lbDirs = Listbox(root)
lbDirs = Listbox(root) refreshDirs(lbDirs,gCurrentDir)
refreshDirs(lbDirs,gCurrentDir) lbDirs.grid(row = 2,column = 0,stick = W)
lbDirs.grid(row = 2,column = 0,stick = W) lbDirs.bind('<Double-Button-1>',changeDir)
lbDirs.bind('<Double-Button-1>',changeDir)
 def showProperties(event):
def showProperties(event): '''用于显示文件的属性
    '''用于显示文件的属性 1.文件路径
    1.文件路径 2.文件大小
    2.文件大小 3.文件创建日期
    3.文件创建日期 4.文件修改日期
    4.文件修改日期 5.文件访问日期'''
    5.文件访问日期''' import time
    import time try:
    try: # 注意考虑当前目录没有文件的情况,这里使用异常处理,信息显示为空
        # 注意考虑当前目录没有文件的情况,这里使用异常处理,信息显示为空 fn = gCurrentDir + os.sep + lbFiles.get(lbFiles.curselection())
        fn = gCurrentDir + os.sep + lbFiles.get(lbFiles.curselection()) print 'fn = ',fn
        print 'fn = ',fn state = os.stat(fn)
        state = os.stat(fn) msg = ''
        msg = '' msg = 'Location: ' + fn  + ' '
        msg = 'Location: ' + fn  + ' '  msg = msg + 'size:' + ('%d' % state[-4])   + ' '
        msg = msg + 'size:' + ('%d' % state[-4])   + ' ' t = time.localtime(state[-1])
        t = time.localtime(state[-1]) msg = msg + 'create:' +
        msg = msg + 'create:' +  ('%d/%d/%d %d:%d:%d' %
              ('%d/%d/%d %d:%d:%d' %  (t[0],t[1],t[2],t[3],t[4],t[5])) + ' '
              (t[0],t[1],t[2],t[3],t[4],t[5])) + ' ' t = time.localtime(state[-2])
        t = time.localtime(state[-2]) msg = msg + 'modify:' +
        msg = msg + 'modify:' +  ('%d/%d/%d %d:%d:%d' %
              ('%d/%d/%d %d:%d:%d' %  (t[0],t[1],t[2],t[3],t[4],t[5])) + ' '
              (t[0],t[1],t[2],t[3],t[4],t[5])) + ' ' t = time.localtime(state[-3])
        t = time.localtime(state[-3]) msg = msg + 'access:' +
        msg = msg + 'access:' +  ('%d/%d/%d %d:%d:%d' %
              ('%d/%d/%d %d:%d:%d' %     (t[0],t[1],t[2],t[3],t[4],t[5])) + ' '# os.linesep
              (t[0],t[1],t[2],t[3],t[4],t[5])) + ' '# os.linesep 
         lblProperities['text'] = msg
        lblProperities['text'] = msg except:
    except: msg = ''
        msg = '' lblProperities['text'] = msg
        lblProperities['text'] = msg 
         # 创建文件列表
# 创建文件列表 lbFiles = Listbox(root)
lbFiles = Listbox(root) refreshFiles(lbFiles,gCurrentDir)
refreshFiles(lbFiles,gCurrentDir) lbFiles.grid(row = 2,column = 1,stick = W)
lbFiles.grid(row = 2,column = 1,stick = W) lbFiles.bind('<Double-Button-1>',showProperties)
lbFiles.bind('<Double-Button-1>',showProperties)
 # 创建属性标签
# 创建属性标签 lblProperities = Message(root)
lblProperities = Message(root) showProperties(0)
showProperties(0) lblProperities.grid(row = 2,column = 2)
lblProperities.grid(row = 2,column = 2) root.mainloop()
root.mainloop()



 python-文件信息查看器
 python-文件信息查看器
