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

python写的本地搜索小工具

阅读更多

给一个不太懂电脑但会编辑管理很多文件的老总写的工具程序,查找几天前编辑的文件并导入到一个csv文件中。

其中碰到的困难主要是界面布置和中文支持。但现在算是通过。支持中文windows xp的文件名和路径,其他平台没有测试。

并用py2exe生成了exe文件发布。

工具界面:

  1. #coding=utf-8
  2. #smallsearchtoolbytkinter
  3. #testplatform:WindowsXPChinese
  4. #version0.5
  5. #file name: find.py
  6. #author:zhouhh
  7. #date:2008.12.16
  8. #email:ablozhou#gmail.com
  9. #note:tosearchfilesmodifiedafewdaysago
  10. #debugtool:PythonWin
  11. #pythonversion:2.5.2
  12. importos;
  13. importtime;
  14. fromTkinterimport*
  15. classcapp:
  16. '''''对输入的路径和文件后缀以及编辑的天数进行搜索,并在输入路径下生成一个csv结果文件。'''
  17. def__init__(self,master):
  18. '''''filesearchtool0.5byzhouhaihan@cvtt.cn周海汉'''
  19. frame1=Frame(master)
  20. frame1.pack()
  21. self.quest=Label(frame1,bitmap='questhead')
  22. self.quest.pack(side=LEFT)
  23. #self.button=Button(frame,text='Quit',fg='red',command=frame.quit)
  24. #self.button.pack(side=LEFT)
  25. self.dirlable=Label(frame1,text=unicode('输入搜索路径:','gbk'),font=('songti',9))
  26. self.dirlable.pack(side=LEFT)
  27. self.entry=Entry(frame1,font=('songti',9),width=65)
  28. self.entry.pack(side=LEFT)
  29. frame=Frame(master)
  30. frame.pack()
  31. self.lblext=Label(frame,text=unicode('文件后缀名:','gbk'),font=('songti',9))
  32. self.lblext.pack(side=LEFT)
  33. self.ext=Entry(frame,width=15)
  34. self.ext.pack(side=LEFT)
  35. self.extstr=StringVar()
  36. self.extstr.set(u'*.xls')
  37. self.ext['textvariable']=self.extstr
  38. self.contents=StringVar()
  39. self.contents.set(u'')
  40. self.entry['textvariable']=self.contents
  41. self.daylable=Label(frame,text=unicode('修改时间(几天前):','gbk'),font=('songti',9))
  42. self.daylable.pack(side=LEFT)
  43. self.days=Entry(frame,width=15)
  44. self.days.pack(side=LEFT)
  45. self.daystr=StringVar()
  46. self.daystr.set('1')
  47. self.days['textvariable']=self.daystr
  48. self.hello=Button(frame,text=unicode('查找','gbk'),font=('songti',12,'bold'),fg='red',bg='white',height=2,width=8,command=self.sayhi)
  49. self.hello.pack(side=LEFT)
  50. frame3=Frame(master)
  51. frame3.pack()
  52. self.msg=Label(frame3,text=unicode('','gbk'))
  53. self.msg.pack(side=LEFT)
  54. defsayhi(self):
  55. print'begining...'
  56. self.msg.config(text='...')
  57. try:
  58. mydir=self.contents.get()
  59. mydays=self.daystr.get()
  60. myext=self.extstr.get()
  61. file1=open(os.path.join(mydir,'result.csv'),'a+')
  62. searchinfo='\nsearch'+myext+'in'+mydays+'days.seachtime:'+time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(time.time()))+'\n'
  63. file1.write(searchinfo)
  64. file1.write('Filename,Modifytime,Size(bytes),Directory\n')
  65. self.listfile(mydir,file1,mydays,myext)
  66. file1.close()
  67. self.msg.config(text=unicode('搜索成功!','gbk'),font=('songti',9))
  68. exceptIOError,(errno,strerror):
  69. print'IOerror%s:%s'%(errno,strerror)
  70. self.msg.config(text='IOerror%s:%s'%(errno,strerror))
  71. except:
  72. print"Unexpectederror:",sys.exc_info()[0]
  73. self.msg.config(text='error'+str(sys.exc_info()[0]))
  74. file1.close()
  75. raise
  76. deflistfile(self,dirname,file1,days,ext):
  77. '''''searchfiles...'''
  78. iflen(ext)>0:
  79. ext=os.path.splitext(ext)[1]
  80. iflen(dirname)>0:
  81. os.chdir(dirname)
  82. dirname=os.getcwd()
  83. print'['+dirname+']:'
  84. names=os.listdir(dirname)
  85. dirs=[]
  86. forfilenameinnames:
  87. fullname=os.path.join(dirname,filename)
  88. ifos.path.isdir(fullname):
  89. dirs.append(fullname)
  90. continue
  91. iflen(ext)>0:
  92. ifos.path.splitext(filename)[1]!=ext:
  93. status='ignore'+filename+'forextension'
  94. printstatus
  95. self.msg.config(text=unicode(status,'gbk'),font=('songti',9))
  96. continue;
  97. t=os.path.getmtime(fullname)
  98. tnow=time.time()
  99. #printfullname,'ignore',tnow,t,tnow-t,86400*int(days)
  100. iflen(days)>0:
  101. if((tnow-t)>86400*int(days)):
  102. status='ignore'+filename+'fordate'
  103. printstatus
  104. self.msg.config(text=unicode(status,'gbk'),font=('songti',9))
  105. continue;
  106. mt=time.localtime(t)
  107. size=os.path.getsize(fullname)
  108. fileinfo=filename+','+time.strftime('%Y-%m-%d%H:%M:%S',mt)+','+str(size)+','+dirname+'\n'
  109. printfileinfo
  110. file1.write(fileinfo)
  111. fordirnameindirs:
  112. self.listfile(dirname,file1,days,ext)
  113. if__name__=='__main__':
  114. #reload(sys)
  115. #sys.setdefaultencoding('utf8')
  116. root=Tk()
  117. root.title(unicode("搜索工具-0.5-周海汉2008.12.16",'gbk'))
  118. app=capp(root)
  119. root.mainloop()

py2exe 的setup.py

  1. #setup.py
  2. fromdistutils.coreimportsetup
  3. importpy2exe
  4. setup(console=["find.py"])

执行,在命令行下输入:

  1. pythonsetup.pypy2exe
分享到:
评论

相关推荐

    Python应用程序代码-Python文献超级搜索下载工具

    本项目涉及的是一个Python编写的文献搜索与下载工具,它能够帮助用户高效地查找并下载相关的学术文献,极大地提高了研究者和学习者的资料获取效率。 Python编程的核心概念包括变量、数据类型(如字符串、整数、...

    Python-冲顶大会题目搜索工具

    【Python-冲顶大会题目搜索工具】是一款基于Python编写的实用工具,专为参与冲顶大会等知识竞答游戏的用户设计。它利用高效的搜索算法和数据处理技术,帮助用户快速查找相关题目及其答案,提高答题的成功率。该工具...

    python的音乐本地搜索统计的小工具(速度优化版)

    在这个特定的场景中,我们讨论的是一个基于Python的音乐本地搜索统计小工具,它经过了速度优化,能够快速高效地在用户的本地计算机上搜索和统计音乐文件。 这个工具的主要目标是帮助用户轻松查找和管理他们的音乐...

    Python本地字典查询

    "Python本地字典查询"这个主题,结合"本地服务器+爬虫"的描述,我们可以深入探讨如何利用Python在本地环境中进行高效的字典操作以及如何构建网络爬虫来获取和处理数据。 首先,Python的字典(Dictionary)是其内置...

    Python-Milano是一个模型超参自动搜索工具

    **Python-Milano:模型超参数自动搜索工具详解** 在机器学习领域,超参数优化是构建高效模型的关键步骤之一。超参数是模型训练前设定的值,它们影响着模型的结构和学习过程,如学习率、批次大小、神经网络层数等。...

    Python-Curdling管理Python包的命令行工具

    然而,除了标准的`pip`工具之外,还有一些其他的包管理器,比如`Curdling`,它是一个专门用于Python包管理的命令行工具,旨在提供更高效、更灵活的解决方案。 `Curdling`的核心功能包括查找、构建、安装和维护...

    用Python写网络爬虫PDF&源码

    本资源“用Python写网络爬虫PDF&源码”提供了关于这一主题的详细教程及实际代码示例,对于学习和实践Python网络爬虫技术十分有益。 首先,PDF文档可能涵盖以下知识点: 1. **基础概念**:介绍网络爬虫的基本概念,...

    python pip工具

    Python的`pip`工具是Python生态系统中的一个核心组件,它用于安装、管理和升级Python软件包。这个工具使得开发者和用户可以方便地从Python Package Index (PyPI) 中获取和安装各种开源库。在本文中,我们将深入探讨`...

    python练手项目实现截屏读取并搜索的小应用

    最后,压缩包中的"冲顶大会自助截屏搜索工具"很可能包含了项目的所有源代码和必要的配置文件。分析和学习这些代码,可以进一步了解上述技术的实现细节,并为自己的项目提供灵感。 总的来说,这个Python练手项目不仅...

    Python实现自动百度搜索图片并下载(内附exe文件,不需要软件即可运行).zip

    该压缩包文件包含了一个使用Python编写的程序,用于模拟百度图片搜索并自动下载搜索结果中的图片。这个程序的独特之处在于它附带了一个可执行文件(exe),这意味着用户无需安装Python环境或其他任何软件,只需运行...

    Python-email下载器将邮件以eml文件格式备份到本地

    本话题涉及的是使用Python编写一个电子邮件下载器,该工具能够将邮件以EML(电子消息库)格式保存到本地计算机。EML文件是一种标准格式,可以独立于邮件客户端查看和存储电子邮件,通常包含了邮件的完整元数据、正文...

    python工具pip 10.0

    总结来说,`pip 10.0`是Python开发者日常工作中不可或缺的工具,它的更新旨在提升用户体验,增强稳定性,并为Python社区提供更好的包管理和分发服务。通过`python setup.py install`安装自定义或本地的`pip`版本,...

    baidu_python.rar_baidu_python_python搜索

    标题 "baidu_python.rar_baidu_python_python搜索" 暗示了这个压缩包包含的资源是关于使用Python进行百度搜索引擎的爬虫程序。这通常涉及到网络爬虫的基础知识,如HTTP请求、HTML解析以及数据抓取,特别是针对百度...

    Python库 | meilisearch_python_async-0.14.0-py3-none-any.whl

    安装meilisearch_python_async库非常简单,只需要通过Python的pip工具,使用命令`pip install meilisearch_python_async-0.14.0-py3-none-any.whl`即可。这个.whl文件是一种预编译的Python包格式,它包含了库的所有...

    Everything 强大有力的本地搜索工具

    而“Everything”这款强大的本地搜索工具,无疑为解决这一问题提供了绝佳的解决方案。本文将深入探讨Everything的核心功能、优势以及使用技巧,帮助你充分利用这一神器提升工作效率。 首先,Everything的独特之处...

    Google 本地搜索 实例

    标题 "Google 本地搜索 实例" 提到的是关于如何利用Google搜索引擎进行本地搜索的一个实践案例。这可能涉及到在用户设备上实现类似Google的快速、高效搜索功能的技术和方法。在这个实例中,我们可能会讨论以下几个...

    ssh工具 python脚本.zip

    这是一个python脚本工具,主要用于快捷的搜索文档并通过ssh将其上传到指定的ssh服务端,或者从ssh服务端快捷的搜索文档并下载到本地。工具包中有一个 ssh工具.bat 脚本,该脚本可以用于启动 ssh工具.py 脚本,双击...

    Python-noteshrink将手写笔记扫描转成漂亮简洁的PDFs文件

    Python-noteshrink是一个开源工具,专门用于将手写笔记的扫描件转换成整洁美观的PDF文档。这个项目基于Python编程语言,充分利用了Python强大的文件处理和图像处理能力,旨在简化个人学习者和工作者的笔记整理过程,...

    Python-whipFTP是一个使用tkinterGUI工具python编写的FTPSFTP客户端

    总的来说,Python-whipFTP是一个实用的工具,它展示了Python在开发跨平台应用程序上的强大能力,尤其是结合tkinter库构建GUI界面。通过这个项目,用户不仅可以实现文件的高效管理,还能深入学习Python网络编程和GUI...

    python交换机自动备份脚本

    如果不确定如何安装,可以通过Python的包管理器pip来搜索并安装,例如:`pip install paramiko netmiko`。 总的来说,Python交换机自动备份脚本结合了网络通信、文件操作、日志管理和配置管理等多个领域的知识。...

Global site tag (gtag.js) - Google Analytics