`
totoxian
  • 浏览: 1074117 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

python写的本地搜索小工具0.9

阅读更多
  1. #coding=utf-8
  2. #smallsearchtoolbytkinter
  3. #testplatform:WindowsXPChinese
  4. #version0.9
  5. #author:zhouhh
  6. #filename:find.py
  7. #date:2008.12.16
  8. #email:ablozhou#gmail.com
  9. #note:tosearchfilesmodifiedafewdaysago
  10. #debugtool:PythonWin
  11. #pythonversion:2.5.2
  12. #py2exe:
  13. #createasetup.py:
  14. ###########################
  15. ##setup.py
  16. #fromdistutils.coreimportsetup
  17. #importpy2exe
  18. #setup(console=["find.py"])
  19. #
  20. ##########################
  21. #runingcmd:pythonsetup.pypy2exe
  22. importos;
  23. importtime;
  24. fromTkinterimport*
  25. classcapp:
  26. '''''对输入的路径和文件后缀以及编辑的天数进行搜索,并在输入路径下生成一个csv结果文件。'''
  27. def__init__(self,master):
  28. '''''filesearchtool0.9byzhouhaihan@cvtt.cn周海汉'''
  29. frame1=Frame(master)
  30. frame1.pack(padx=5)
  31. self.quest=Label(frame1,bitmap='questhead')
  32. self.quest.pack(side=LEFT)
  33. self.dirlable=Label(frame1,text=unicode('输入搜索路径:','utf8'),font=('songti',9))
  34. self.dirlable.pack(side=LEFT)
  35. self.entry=Entry(frame1,font=('songti',9),width=65)
  36. self.entry.pack(side=LEFT)
  37. frame=Frame(master)
  38. frame.pack(pady=5)
  39. self.lblext=Label(frame,text=unicode('文件后缀名:','utf8'),font=('songti',9))
  40. self.lblext.pack(side=LEFT)
  41. self.ext=Entry(frame,width=15)
  42. self.ext.pack(side=LEFT,padx=5)
  43. self.extstr=StringVar()
  44. self.extstr.set(u'*.xls')
  45. self.ext['textvariable']=self.extstr
  46. self.contents=StringVar()
  47. self.contents.set(u'')
  48. self.entry['textvariable']=self.contents
  49. self.daylable=Label(frame,text=unicode('修改时间(几天前):','utf8'),font=('songti',9))
  50. self.daylable.pack(side=LEFT)
  51. self.days=Entry(frame,width=20)
  52. self.days.pack(side=LEFT,padx=5)
  53. self.daystr=StringVar()
  54. self.daystr.set('1')
  55. self.days['textvariable']=self.daystr
  56. frame2=Frame(master)
  57. frame2.pack(pady=5)
  58. self.resultlabel=Label(frame2,text=unicode('结果保存路径','utf8'),font=('songti',9))
  59. self.resultlabel.pack(side=LEFT,padx=8)
  60. self.resultfilestr=StringVar()
  61. self.resultfile=Entry(frame2,font=('songti',9),width=40)
  62. self.resultfile.pack(side=LEFT)
  63. self.resultfile['textvariable']=self.resultfilestr
  64. self.resultfilestr.set(u'')
  65. self.hello=Button(frame2,text=unicode('查找','utf8'),font=('songti',12,'bold'),fg='red',height=1,width=8,command=self.sayhi)
  66. self.hello.bind('<Enter>',self.rolloverEnter)
  67. self.hello.bind('<Leave>',self.rolloverLeave)
  68. self.hello.pack(side=LEFT,padx=5)
  69. #self.button=Button(frame2,text=unicode('退出','utf8'),font=('songti',12),height=1,command=master.quit)
  70. #self.button.bind('<Enter>',self.rolloverEnter)
  71. #self.button.bind('<Leave>',self.rolloverLeave)
  72. #self.button.pack(side=LEFT,padx=5)
  73. frame3=Frame(master)
  74. frame3.pack(pady=5)
  75. self.msg=Label(frame3,text=unicode('','utf8'))
  76. self.msg.pack(side=LEFT)
  77. defsayhi(self):
  78. print'begining...'
  79. self.msg.config(text='...')
  80. try:
  81. mydir=self.contents.get()
  82. iflen(mydir)<=0:
  83. mydir=os.getcwd()
  84. self.contents.set(unicode(mydir,'utf8'))
  85. os.chdir(mydir)
  86. resultdir=self.resultfilestr.get()
  87. iflen(resultdir)<=0:
  88. resultdir=mydir
  89. self.resultfilestr.set(resultdir)
  90. mydays=self.daystr.get()
  91. myext=self.extstr.get()
  92. file1=open(os.path.join(resultdir,'result.csv'),'a+')
  93. searchinfo='\nsearch'+myext+'in'+mydays+'days.Time:'+time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(time.time()))+'\n'
  94. file1.write(searchinfo)
  95. file1.write('Filename,Modifytime,Size(bytes),Directory\n')
  96. self.listfile(mydir,file1,mydays,myext)
  97. file1.close()
  98. os.chdir(mydir)#changepathtothebeginingpath
  99. self.msg.config(text=unicode('搜索成功!请查看'+os.path.join(resultdir.encode('utf8'),'result.csv'),'utf8'),font=('songti',9))
  100. exceptIOError,(errno,strerror):
  101. print'IOerror%s:%s'%(errno,strerror)
  102. self.msg.config(text='IOerror%s:%s'%(errno,strerror))
  103. os.chdir(mydir)
  104. except:
  105. print"Unexpectederror:",sys.exc_info()[0]
  106. self.msg.config(text='error'+str(sys.exc_info()[0]))
  107. file1.close()
  108. os.chdir(mydir)
  109. raise
  110. #defpressedPlain(self):
  111. #showinfo("Message","YoupressedPlainButton")
  112. defrolloverEnter(self,event):
  113. event.widget.config(relief=GROOVE)
  114. defrolloverLeave(self,event):
  115. event.widget.config(relief=RAISED)
  116. deflistfile(self,dirname,file1,days,ext):
  117. '''''searchfiles...'''
  118. iflen(ext)>0:
  119. ext=os.path.splitext(ext)[1]
  120. iflen(dirname)>0:
  121. os.chdir(dirname)
  122. dirname=os.getcwd()
  123. print'['+dirname+']:'
  124. names=os.listdir(dirname)
  125. dirs=[]
  126. forfilenameinnames:
  127. fullname=os.path.join(dirname,filename)
  128. ifos.path.isdir(fullname):
  129. dirs.append(fullname)
  130. continue
  131. iflen(ext)>0:
  132. ifos.path.splitext(filename)[1]!=ext:
  133. status='ignore'+filename+'forextension'
  134. printstatus
  135. self.msg.config(text=status,font=('songti',9))
  136. continue;
  137. t=os.path.getmtime(fullname)
  138. tnow=time.time()
  139. #printfullname,'ignore',tnow,t,tnow-t,86400*int(days)
  140. iflen(days)>0:
  141. if((tnow-t)>86400*int(days)):
  142. status='ignore'+filename+'fordate'
  143. printstatus
  144. self.msg.config(text=status,font=('songti',9))
  145. continue;
  146. mt=time.localtime(t)
  147. size=os.path.getsize(fullname)
  148. fileinfo=filename+','+time.strftime('%Y-%m-%d%H:%M:%S',mt)+','+str(size)+','+dirname+'\n'
  149. printfileinfo
  150. file1.write(fileinfo)
  151. fordirnameindirs:
  152. self.listfile(dirname,file1,days,ext)
  153. if__name__=='__main__':
  154. #reload(sys)
  155. #sys.setdefaultencoding('utf8')
  156. root=Tk()
  157. root.title(unicode("搜索工具-0.9-周海汉2008.12.17",'utf8'))
  158. app=capp(root)
  159. root.mainloop()
分享到:
评论

相关推荐

    Python库 | motus-0.9.9.22.tar.gz

    总之,Python库如"motus-0.9.9.22"是Python生态系统的重要组成部分,它们为开发者提供了强大而便捷的工具,促进了代码的复用和项目的快速开发。了解如何查找、安装和使用这些库是每个Python开发者的基本技能。对于...

    Python库 | iatiflattener-0.9b16.tar.gz

    "iatiflattener-0.9b16.tar.gz" 是一个特定的Python库,它以tar.gz格式打包,这是一种常见的源代码分发方式。接下来,我们将深入探讨这个库以及与其相关的知识点。 首先,`iatiflattener` 库的名字暗示它可能与处理...

    Python库 | envo-0.9.0.7b0.tar.gz

    为了使用envo库,开发者首先需要将envo-0.9.0.7b0.tar.gz文件下载到本地,然后使用`tar`命令或者Python的`tarfile`模块进行解压。解压后,通常会得到一个包含setup.py或其他安装脚本的目录,开发者可以通过运行这些...

    Python库 | fsdiff-0.9.tar.gz

    在解压后的`fsdiff-0.9`目录中,找到`setup.py`文件,然后运行`python setup.py install`或者如果已安装`pip`,可以使用`pip install .`命令安装。 总的来说,`fsdiff`是一个强大且实用的工具,它简化了对文件系统...

    Python库 | pipz-0.9.713-py2.py3-none-any.whl

    使用这个`.whl`文件,用户可以通过Python的包管理工具(可能是pip,也可能是pipz)将其安装到本地环境中。安装过程通常包括下载文件,然后通过命令行工具执行安装命令,例如`pip install pipz-0.9.713-py2.py3-none-...

    Python库 | xm.booking-0.9.tar.gz

    Python库的安装通常通过pip工具进行,如果你已经有了"xm.booking-0.9.tar.gz"的本地副本,你可以先将其解压,然后使用pip的install命令指向解压后的目录,例如: ``` tar -zxvf xm.booking-0.9.tar.gz cd xm.booking...

    Python库 | Spinney-0.9a2-py3-none-any.whl

    **Python库 Spinney-0.9a2-py3-none-any.whl** 在Python的生态系统中,库扮演着至关重要的角色,它们提供了丰富的功能,帮助开发者实现各种复杂任务。Spinney是一个这样的库,版本为0.9a2,它是专门为Python 3设计...

    Python库 | sos-0.9.6.1.tar.gz

    Python库是开发者在编程时经常会使用到的重要工具,它们提供了丰富的功能,可以帮助程序员高效地完成各种任务。在本文中,我们将深入探讨一个名为`sos`的Python库,它被封装在一个名为`sos-0.9.6.1.tar.gz`的压缩包...

    Python库 | pipz-0.9.418-py2.py3-none-any.whl

    Python库是开发者在编程时经常会使用到的重要工具,它们提供了丰富的功能,可以帮助程序员高效地完成各种任务。在Python生态系统中,`pip`是官方默认的包管理器,用于安装、升级和管理Python软件包。然而,`pipz`是...

    Python库 | Plot1Qbit-0.9-py3-none-any.whl

    标题中的"Plot1Qbit-0.9-py3-none-any.whl"是一个Python库...安装这个库时,只需使用Python的pip工具,命令可能是`pip install Plot1Qbit-0.9-py3-none-any.whl`,这样就能在本地环境中轻松集成并利用Plot1Qbit的功能。

    Python库 | GoErrCheckBear-0.9.0.1472802302-py3-none-any.whl

    然后,将`GoErrCheckBear-0.9.0.1472802302-py3-none-any.whl` 文件下载到本地,通过以下命令安装: ```bash pip install GoErrCheckBear-0.9.0.1472802302-py3-none-any.whl ``` 安装完成后,可以通过导入库名来...

    Python库 | zope.fanstatic-0.9b.tar.gz

    在Python的世界里,库是开发者们构建高效、可复用代码的重要工具。今天我们要深入探讨的是名为Zope.Fanstatic的Python库,它是Python开发中的一个关键组件,特别在处理静态资源时表现突出。资源名为"zope.fanstatic-...

    Python库 | GitCommitBear-0.9.0.1472658165.tar.gz

    总结一下,GitCommitBear是Python开发中的一款实用工具,它致力于提升团队的代码管理质量,通过规范化Git提交信息,使项目的历史记录更加清晰,有助于维护、协作和后续的版本发布。在使用过程中,开发者应了解并遵循...

    Python库 | icemac.ab.locales-0.9.tar.gz

    今天我们要聚焦的便是icemac.ab.locales-0.9,这是一个专为国际化和本地化(i18n/l10n)设计的Python库。它在处理多语言环境中的应用有着不可忽视的作用,尤其对于那些需要构建全球化网站或者应用的开发者来说,了解并...

    Python库 | unisos.x822Msg-0.9.tar.gz

    通过运行`python setup.py install`命令,开发者可以在本地系统上安装和配置这个库。 2. `LICENSE` 文件:包含该库的许可协议信息,规定了使用、修改和分发库的条款。 3. `README` 文件:提供关于库的详细信息,...

    Python库 | django-code-deploy-0.9.65.tar.gz

    **Python库 Django Code Deploy 0.9.65 深度解析** 在软件开发领域,特别是后端开发,Python以其简洁的语法和强大的库支持备受青睐。Django作为Python的一个高级Web框架,极大地简化了Web应用的构建过程。本文将...

    PyPI 官网下载 | envo-0.9.4.16b0.tar.gz

    标题中的"PyPI 官网下载 | envo-0.9.4.16b0.tar.gz"指的是一款名为envo的Python库,版本号为0.9.4.16b0,并且该库是以tar.gz格式在Python的官方软件包索引(PyPI)上发布的。PyPI是Python开发者分享和发现第三方库的...

    基于openwrt下安装python ipk包

    在OpenWRT环境中安装Python IPK包是一项对技术有一定要求的任务,主要涉及到OpenWRT操作系统、Python编程语言以及IPK包管理。OpenWRT是一种轻量级的Linux发行版,常用于路由器等嵌入式设备,它提供了丰富的自定义性...

    PyPI 官网下载 | et-micc-0.9.42.tar.gz

    《PyPI官网下载 | et-micc-0.9.42.tar.gz——探索Python云原生开发工具》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了丰富的Python软件包,使得开发者能够方便地分享和使用彼此的代码。在本...

    PyPI 官网下载 | easy-module-attribute-getter-0.9.37.tar.gz

    此外,通过运行`python setup.py install`或利用pip工具(`pip install path/to/easy-module-attribute-getter-0.9.37.tar.gz`),可以在本地环境中安装这个库。 总的来说,"easy-module-attribute-getter"是一个...

Global site tag (gtag.js) - Google Analytics