设为首页 收藏本站
查看: 501|回复: 0

[经验分享] python写的本地搜索小工具0.9

[复制链接]

尚未签到

发表于 2017-5-7 10:41:32 | 显示全部楼层 |阅读模式

  • #coding=utf-8
  • #smallsearchtoolbytkinter
  • #testplatform:WindowsXPChinese
  • #version0.9
  • #author:zhouhh
  • #filename:find.py
  • #date:2008.12.16
  • #email:ablozhou#gmail.com
  • #note:tosearchfilesmodifiedafewdaysago
  • #debugtool:PythonWin
  • #pythonversion:2.5.2
  • #py2exe:
  • #createasetup.py:
  • ###########################
  • ##setup.py
  • #fromdistutils.coreimportsetup
  • #importpy2exe
  • #setup(console=["find.py"])
  • #
  • ##########################
  • #runingcmd:pythonsetup.pypy2exe
  • importos;
  • importtime;
  • fromTkinterimport*

  • classcapp:
  • '''''对输入的路径和文件后缀以及编辑的天数进行搜索,并在输入路径下生成一个csv结果文件。'''
  • def__init__(self,master):
  • '''''filesearchtool0.9byzhouhaihan@cvtt.cn周海汉'''
  • frame1=Frame(master)
  • frame1.pack(padx=5)
  • self.quest=Label(frame1,bitmap='questhead')
  • self.quest.pack(side=LEFT)
  • self.dirlable=Label(frame1,text=unicode('输入搜索路径:','utf8'),font=('songti',9))
  • self.dirlable.pack(side=LEFT)
  • self.entry=Entry(frame1,font=('songti',9),width=65)
  • self.entry.pack(side=LEFT)

  • frame=Frame(master)
  • frame.pack(pady=5)
  • self.lblext=Label(frame,text=unicode('文件后缀名:','utf8'),font=('songti',9))
  • self.lblext.pack(side=LEFT)

  • self.ext=Entry(frame,width=15)
  • self.ext.pack(side=LEFT,padx=5)
  • self.extstr=StringVar()
  • self.extstr.set(u'*.xls')
  • self.ext['textvariable']=self.extstr
  • self.contents=StringVar()
  • self.contents.set(u'')
  • self.entry['textvariable']=self.contents
  • self.daylable=Label(frame,text=unicode('修改时间(几天前):','utf8'),font=('songti',9))
  • self.daylable.pack(side=LEFT)
  • self.days=Entry(frame,width=20)
  • self.days.pack(side=LEFT,padx=5)
  • self.daystr=StringVar()
  • self.daystr.set('1')
  • self.days['textvariable']=self.daystr

  • frame2=Frame(master)
  • frame2.pack(pady=5)
  • self.resultlabel=Label(frame2,text=unicode('结果保存路径','utf8'),font=('songti',9))
  • self.resultlabel.pack(side=LEFT,padx=8)
  • self.resultfilestr=StringVar()
  • self.resultfile=Entry(frame2,font=('songti',9),width=40)
  • self.resultfile.pack(side=LEFT)
  • self.resultfile['textvariable']=self.resultfilestr
  • self.resultfilestr.set(u'')
  • self.hello=Button(frame2,text=unicode('查找','utf8'),font=('songti',12,'bold'),fg='red',height=1,width=8,command=self.sayhi)
  • self.hello.bind('<Enter>',self.rolloverEnter)
  • self.hello.bind('<Leave>',self.rolloverLeave)
  • self.hello.pack(side=LEFT,padx=5)
  • #self.button=Button(frame2,text=unicode('退出','utf8'),font=('songti',12),height=1,command=master.quit)
  • #self.button.bind('<Enter>',self.rolloverEnter)
  • #self.button.bind('<Leave>',self.rolloverLeave)
  • #self.button.pack(side=LEFT,padx=5)

  • frame3=Frame(master)
  • frame3.pack(pady=5)
  • self.msg=Label(frame3,text=unicode('','utf8'))
  • self.msg.pack(side=LEFT)

  • defsayhi(self):
  • print'begining...'
  • self.msg.config(text='...')
  • try:
  • mydir=self.contents.get()
  • iflen(mydir)<=0:
  • mydir=os.getcwd()
  • self.contents.set(unicode(mydir,'utf8'))

  • os.chdir(mydir)
  • resultdir=self.resultfilestr.get()
  • iflen(resultdir)<=0:
  • resultdir=mydir
  • self.resultfilestr.set(resultdir)
  • mydays=self.daystr.get()
  • myext=self.extstr.get()
  • file1=open(os.path.join(resultdir,'result.csv'),'a+')
  • searchinfo='\nsearch'+myext+'in'+mydays+'days.Time:'+time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(time.time()))+'\n'
  • file1.write(searchinfo)
  • file1.write('Filename,Modifytime,Size(bytes),Directory\n')
  • self.listfile(mydir,file1,mydays,myext)
  • file1.close()
  • os.chdir(mydir)#changepathtothebeginingpath
  • self.msg.config(text=unicode('搜索成功!请查看'+os.path.join(resultdir.encode('utf8'),'result.csv'),'utf8'),font=('songti',9))
  • exceptIOError,(errno,strerror):
  • print'IOerror%s:%s'%(errno,strerror)
  • self.msg.config(text='IOerror%s:%s'%(errno,strerror))
  • os.chdir(mydir)
  • except:
  • print"Unexpectederror:",sys.exc_info()[0]
  • self.msg.config(text='error'+str(sys.exc_info()[0]))
  • file1.close()
  • os.chdir(mydir)
  • raise
  • #defpressedPlain(self):
  • #showinfo("Message","YoupressedPlainButton")
  • defrolloverEnter(self,event):
  • event.widget.config(relief=GROOVE)
  • defrolloverLeave(self,event):
  • event.widget.config(relief=RAISED)

  • deflistfile(self,dirname,file1,days,ext):
  • '''''searchfiles...'''
  • iflen(ext)>0:
  • ext=os.path.splitext(ext)[1]
  • iflen(dirname)>0:
  • os.chdir(dirname)
  • dirname=os.getcwd()
  • print'['+dirname+']:'
  • names=os.listdir(dirname)

  • dirs=[]
  • forfilenameinnames:
  • fullname=os.path.join(dirname,filename)
  • ifos.path.isdir(fullname):
  • dirs.append(fullname)
  • continue

  • iflen(ext)>0:
  • ifos.path.splitext(filename)[1]!=ext:
  • status='ignore'+filename+'forextension'
  • printstatus
  • self.msg.config(text=status,font=('songti',9))
  • continue;

  • t=os.path.getmtime(fullname)
  • tnow=time.time()
  • #printfullname,'ignore',tnow,t,tnow-t,86400*int(days)
  • iflen(days)>0:
  • if((tnow-t)>86400*int(days)):
  • status='ignore'+filename+'fordate'
  • printstatus
  • self.msg.config(text=status,font=('songti',9))
  • continue;

  • mt=time.localtime(t)
  • size=os.path.getsize(fullname)

  • fileinfo=filename+','+time.strftime('%Y-%m-%d%H:%M:%S',mt)+','+str(size)+','+dirname+'\n'
  • printfileinfo
  • file1.write(fileinfo)

  • fordirnameindirs:
  • self.listfile(dirname,file1,days,ext)

  • if__name__=='__main__':
  • #reload(sys)
  • #sys.setdefaultencoding('utf8')
  • root=Tk()
  • root.title(unicode("搜索工具-0.9-周海汉2008.12.17",'utf8'))
  • app=capp(root)
  • root.mainloop()




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-374107-1-1.html 上篇帖子: python学习笔记三(类自定义属性 方法) 下篇帖子: the simplest way to use vs 2010 with python
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表