分享

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

 东西二王 2019-08-22

软件长这样:

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

文件管理软件界面

第一个功能 文件树功能 点击文件树 选择一个文件夹 会显示此文件夹所有文件和文件夹 双击可以打开 最上面蓝色文字是当前文件夹地址

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

第二个功能 查找关键字功能 输入关键字 勾选匹配文件名或者匹配文件内容或全部勾选 点击关键字 选择一个文件夹 会罗列出所有符合条件文件 现在只支持文本txt .doc .docx .xls .xlsx

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

更换封面

视频尚未发布,暂时无法播放

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这是开头部分,定义了引入的模块,没有的需要用pip下载。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这个函数是把符合条件的文件放到列表框里。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这个函数开始判断读取的文件类型,因为要打开文件,判断里面有没有关键字。Python特殊之处就是txt,doc,xls等文件的打开方式不一样,对非txt文件用open方式打开会出现乱码,这个比较坑。不过我发现了一个bug,就是当文件夹里的文件是ghost隐藏文件的时候,会发生读取错误。我觉得如果有其他无法打开文件,也会发生错误,所以这个地方我将在下一个版本中更改。不过当我们选择指定文件夹中没有奇怪的文件时就可以避免。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

对于xls和xlsx文件我用pandas模块进行读取,因为pandas处理excel类文件有独特的优势,如果后期增加功能模块也能胜任。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

对于docx文件,调用win32com模块,他可以打开读取docx文件,但是不能打开doc文件。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

因为能打开不能直接读取doc文件(挺有意思啊),所以用了一个过桥的方法,先是打开doc文件,然后另存为docx文件,对他进行读取判断之后,删掉另存为的这个临时文件。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

首先判断输入文本框,如果为空则弹出警告框,必须有关键字才能执行接下来的程序。然后判断复选框情况,只有至少选一个的情况才能执行接下来的程序。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这里是对复选框情况进行判断,是选择匹配文件名还是匹配文件内容还是全都匹配。这里可以默认匹配文件名,因为这种情况是最多的,提高客户体验感。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

双击文件的时候打开文件。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

判断双击时点击的是文件还是文件夹。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

点击 文件树 会弹出个选择路径的窗口 ,之后执行文件树函数

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

双击时调用,双击时,设置背景色为红色,并调用doLS函数打开所选文件

双击时调用,双击时,设置背景色为红色,并调用doLS函数打开所选文件

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

实现更新目录的核心算法,这个算法是我从一个类改的,判断导入的是目录而不是文件,但是我现在导入的方式是打开文件夹而不是输入文件地址,所以这个判断其实没有用。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这个函数在备注里已经讲得很清楚了,不过读懂和理解需要时间,我来来回回读了一周,整个函数才摸到点脉络,我觉得是自己的编程基础太差了。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

在接下来我又复制了一个dols函数,因为直接不太会处理直接引用和间接引用,这个地方我在下个版本的地方优化一下。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这里和下面都是软件界面函数了,指定了窗口位置大小,地址栏文字规格。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这是左边的框架,里面绑定了双击触发事件,右边也绑定。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

第二个框架,复选框啦,按钮啦,输入框啦什么的。

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

完活。

那还是太年轻,做完软件往回瞅,学算法用了一半时间,填坑用了另一半时间。

(坑一)在网上有两个比较成型的文件管理源程序,分别是:https://blog.csdn.net/qq_34755081/article/details/82261527

https://blog.csdn.net/chl0000/article/details/7657895

Tkinter适用于python2 tkinter适用于python3

前者代码少但是简陋,后者颜值高但是复杂。因为我想要实现后者的效果,所以我试着在编辑器里运行,但是怎么都运行不了,后来才发现他是python2下运行的程序,而网页上写的是运行在python3,我也没想版本的问题,导致从头到尾撸了几天函数之后发现并没有什么错误,最后才发现是版本问题。而这也导致我在之后的编程日子里最多同时安装四个版本的python:python2 32位 python2 64位 python3 32位 python3 64位(因为我们单位的电脑是32位的)。不过等我完全结束这个项目的时候才开始学会把python2的代码转换成python3的代码,而这其中的差别是一点点磨出来的。

(坑二)在使用64位编译成功以后,我打算下载32位重新编写,但是当时没有掌握cmd的使用,所以为了避免复杂,我就把电脑里所有python都卸载了,重新安装了一个python3的32位,结果cmd总是说:

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

就好像不识别安装的python一样,最后我找到了解决办法,在python安装位置 打开cmd就可以正常使用了。如果在开始位置直接打开cmd,然后运行python代码很大可能是执行错误。

(坑三)python不识别word 需要通过win32com模块

我以为打开文件用一个open就可以,结果open只能执行txt文本文件,打开其他文件会出现乱码,解决办法就是通过win32com模块,而处理docx和doc文件还不一样,这个在我的代码中有所体现。

(坑四)用pyinstaller打包之后,总是提示 excat。。。 用-c之后发现缺少numpy.random.common 解决办法:

pyinstaller -F -w d:\\answer1.py --hidden-import numpy.random.common --clean

如果还是执行不了就继续--hidden-import 我最终的执行代码是:

pyinstaller -F -w d:\\answer1.py --hidden-import numpy.random.common

----hidden-import numpy.random.bounded_integers --hidden-import numpy.random.entropy --clean

(坑五):在运行的时候有可能会打不开并有发现如下提示:

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这个时候就得安装插件,如下:

熟练掌握python安装和卸载--编写文件管理软件的思路和遇到的坑

这个问题是咱们自己编写软件避免不了的。因为现在流行的编写软件已经默认这个插件是电脑中的必备项,而内网电脑因为天然原因个别电脑没有个别插件,而这又是我们编写软件的是我们所预想不到的,所以只能在使用中遇到具体问题具体分析。

这篇文章是我编写完软件之后的一个总结随笔,因为能力有限,可能个别说法并不是完全正确,只是对我这个环境和这个函数有效而已,在接下来的日子里,随着新版本的更迭,我会继续完善本篇文章,也希望有耐心读到这个位置的朋友或者高手多提出宝贵意见,谢谢大家。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多