改进方向

生成最简单的exe程序

将python脚本转化为exe程序比较常用的是两个库,py2exe和pyinstaller,由于前者不支持3.5及以上版本,操作也相对复杂,因此这里选择pyinstaller。

安装:在cmd中直接pip install PyInstaller 就安装好了。

之后我们只要使用pyinstaller这条命令即可,正常来说我们安装好这个库之后,pyinstaller.exe就在环境变量中了,所以我们可以在任何文件夹下的cmd窗口中调用这条命令。

pyinstaller库生成exe文件非常简单,只要一条命令就能自动生成,我们来看一下下面这个简单例子

在cmd_try文件夹下创建hello.py文件,文件中的内容如下

然后我们在cmd_try文件夹下打开命令窗口,输入 pyinstaller hello.py 就会自动生成几个文件夹,dist文件夹中的hello文件夹中,就有了hello.exe文件,双击这个文件就会弹出一个让你输入名字的窗口,这就代表这个可执行程序创建完成。

注:同时会生成一个build文件,其中也有一个hello.exe,不用管它,把build文件夹删掉,dist中的hello.exe文件依然可以运行

如果要继续修改程序,修改后的hello.py保存后,要再用pyinstaller hello.py这条命令重新生成,覆盖原有的文件,hello.exe才能执行新的功能。

下面我们在命令行中调用这个可执行程序

在之前的命令行窗口中输入 cd dist 进入dist文件夹中,再输入 cd hello 进入hello文件夹中,再输入两种命令都可以:

直接输入hello即调用了hello.exe文件,会在当前这个命令窗口中让你输入你的名字

输入 start hello 则会另外出现一个命令窗口让你输入你的名字

其中第一种其实和在cmd_try文件夹下的命令行窗口中输入python hello.py效果相同,所以我们可以用这个来测试,测试结束后再生成exe文件

直接输入hello即调用了hello.exe文件,会在当前这个命令窗口中让你输入你的名字

输入 start hello 则会另外出现一个命令窗口让你输入你的名字

其中第一种其实和在cmd_try文件夹下的命令行窗口中输入python hello.py效果相同,所以我们可以用这个来测试,测试结束后再生成exe文件

带有参数的exe程序

因为我们的exe程序需要能够打开一个文件,所以需要调用外部参数。下面我们实现在命令行调用hello.py文件时传入参数。这里使用python内置的命令行解析库argparse,这个库的官网特别详细,一步一步教你如何操作,有兴趣的读者可以直接去官网学习,这里仅仅做最简单的使用。

hello.py文件中内容改为

我们先直接用python来调用,在cmd_try目录下的cmd窗口输入 python hello.py "bob" ,我们想要的结果就会在下面被打印出来

注:因为刚刚我们用cd命令把命令行窗口的位置切换到了hello文件夹下,如果想返回 cmd_try 文件夹下,则输入两次 cd .. 即可

接下来我们将程序打打包成exe文件,输入pyinstaller hello.py

cd到hello文件夹下输入hello "bob"也可以打印出正常的结果

参数是文件名

为了和我们的目标更接近一点,我们现在实现提取一个txt文件中的内容,前后加一个html的标签,再存成一个html文件

hello.py文件换为如下内容

同时在cmd_try文件夹中创建hi.txt文件,内容如下

在cmd_try文件夹下的cmd窗口中输入 python hello.py "hi.txt" 发现执行成功,在cmd_try文件夹下生成了一个a.html文件,我们可以双击这个文件则自动用浏览器打开,内容也是我们刚刚指定的内容。

于是我们再执行pyinstaller hello.py转化为exe程序。同时删除刚刚生成的a.html文件。

在hello文件夹下的cmd窗口中输入 hello C:\python\cmd_try\hi.txt(具体更改为读者电脑中hi.txt文件所在路径) 则会在hello文件夹下生成a.html

删除a.html文件,我们再换一种方式运行

右键hi.txt,选择打开方式-选择其他应用-更多应用-在这台电脑上查找其他应用,然后找到hello.exe的位置,勾选上“始终用此程序打开”,点击打开。这次没反应,但是下次你双击这个文件,就会在cmd_try文件夹下产生一个a.html文件,即运行成功。必须要设置默认用这个程序打开该类型文件,因为用这个过程选打开是没有效果的,只有双击打开才可以。双击打开就相当于用hello.exe调用这个文件作为参数,也就是之前我们在命令行中输入的执行代码。

到现在就万事具备了,接下来我们只要把试验的代码换成处理.ipynb文件的就可以了

真正实现

用文本编辑器打开.ipynb文件发现,它是一个json格式的文本数据,因此我们可以直接读取,转化为字典列表,再进行提取、添加标签即可生成网页源代码,再写出来成一个html文件即可。

因为主要是查看代码,所以这里只提取标题和代码,文本不予提取。标题会汇总在一起放在前面构成目录链接。

在my_project文件夹下建立一个ipynb_view.py文件,里面内容如下

文件写好保存之后,在ipynb_view文件夹下打开命令行窗口,输入 python ipynb_view.py C:\Jupyter\base.ipynb (路径改为读者自己的.ipynb文件路径),运行之后即可在ipynb文件夹下生成一个base.html文件,可以用浏览器打开查看笔记内容。

下面我们再将py文件转化为可执行程序。在ipynb_view文件夹下打开命令行窗口,输入pyinstaller ipynb_view.py即创建完成。

之后只要找到一个.ipynb文件,设置打开方式默认是ipynb_view.exe,以后每次双击.ipynb文件都会在.ipynb所在文件夹下生成一个同名的.html文件,速度还是很快的,这样查看笔记就方便多了。

改进方向

上面只是提供一个思路和简单的实现,还不是十分完善,感兴趣的读者可以再自己把代码完善起来,可以有以下改进方向作为参考

第一是这样每次生成的一个html文件,都要手动删除。如果可以用程序控制把HTML内容直接用浏览器打开就更好了,或者编写用完自动删除的代码

第二是上面创建html代码的python代码可读性不强,只是因为需求比较简单,暂时应付一下,有更高需求的读者可以试一试编写一个添加标签、属性、css样式的类,让代码结构更加清晰。或者用现成的pyH库貌似可以实现

第三是文本内容没有加进来,因为里面有各种markdown格式标记,不是很好处理,这里就直接舍弃了,有需要的读者可以写程序把文本也读取进来

第一是这样每次生成的一个html文件,都要手动删除。如果可以用程序控制把HTML内容直接用浏览器打开就更好了,或者编写用完自动删除的代码

第二是上面创建html代码的python代码可读性不强,只是因为需求比较简单,暂时应付一下,有更高需求的读者可以试一试编写一个添加标签、属性、css样式的类,让代码结构更加清晰。或者用现成的pyH库貌似可以实现

第三是文本内容没有加进来,因为里面有各种markdown格式标记,不是很好处理,这里就直接舍弃了,有需要的读者可以写程序把文本也读取进来

本文作者:数据取经团 - 王智博

python编译成手机可用程序打开本文件_python创建可以打开文件的EXE相关推荐

  1. python编译成手机可用程序_Python 程序打包成 exe 可执行文件

    可执行文件:对于非码农用户或者一些小白用户,你让他装个 Python 同时还要折腾一堆依赖库,那简直是个灾难.对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉他即可.比较麻烦的是需要 ...

  2. 『Python』Python编译成计算机可执行文件(Windows计算机可执行文件exe,Linux 计算机可执行文件elf,Mac计算机可执行文件mach-O)

    文章目录 背景: 我们的主角 :PyInstaller 使用 1.安装pyinstaller 2.进入安装工作环境 3. 生成不自定义图标的exe文件 4.生成带自定义图标的exe文件 PyInsta ...

  3. python编译成exe和exe反编译成python

    先看文章概要.再看左侧目录,可准确找到需要内容 文章概要:python文件可编译成exe文件,exe文件也可通过反编译恢复为python文件.下面简单介绍如何生成exe和恢复python python ...

  4. python编译成exe有意义吗_python工程编译成EXE

    前言 python编译成EXE文件后,可以独立使用.亲测,一个复杂的python工程包含多个包多个模块,可以生成exe文件. 目的 windows下将整个python工程编译成单个EXE或者单个目录带 ...

  5. uniapp兼容保利威视频,可编译成微信小程序、移动端、h5

    基于uniapp开发,引入保利威视频云, 代码可编译成微信小程序,移动端,h5,其他小程序理论上都支持但是没有验证,demo下载地址 https://download.csdn.net/downloa ...

  6. python找不到csv文件_Python如何读取csv文件

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). 纯文本意味着该文件是一个字符序列, ...

  7. python中如何打开csv文件_Python如何读取csv文件

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). 纯文本意味着该文件是一个字符序列, ...

  8. python编译成汇编语言_Python前言之编程语言

    编程语言分类(语言) ​编程语言是用来和计算机进行交互的,计算机只认识0和1. 机器语言(低级语言) 直接和硬件进行交互 用0和1和计算机进行沟通 缺点:开发效率低 优点:执行效率高 汇编语言 直接和 ...

  9. python编译成exe速度会变快吗_python如何编译成exe

    Python 程序都是脚本的方式,一般是在解析器里运行,如果要发布出去,需要提前安装解析器才可以运行,为了在 Windows 里方便发布,只要点击一个 EXE 文件运行,并且打包所需要库文件,这样发布 ...

最新文章

  1. ASP.NET MVC4中调用WEB API的四个方法
  2. Android在ListView滑动数据混乱
  3. 如何为.NETCore安装汉化包智能感知
  4. 误删了计算机桌面回收站,我电脑回收站里的东西已经被删除几天了?怎么可以找回!谢谢...
  5. 关于函数指针调用C++非静态成员
  6. uniapp 输入框防抖节流_拉动一下控制台大小,后台请求数量爆炸,竟是没做好防抖与节流...
  7. HDU 2955 Robberies(概率DP,01背包)题解
  8. 利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
  9. chromedriver下载链接以及对应版本
  10. 干净卸载sqlserver2019 亲测有效!
  11. 【转】一文带你了解800万像素车载摄像头
  12. EOS REX 安全系列之从源码开始玩转 REX(一)
  13. 滴滴出行A/B测试城市运营分析
  14. 脚上有一个很灵的止咳穴位
  15. linux密码中逗号怎么输入,linux一窜数字后面的逗号怎么去掉?
  16. ERD Online 4.0.5 在线数据库建模、元数据管理(免费、私有部署)
  17. Windows XP Service Pack 3 (Windows XP SP3)简体中文版本正式发布(附下载地址)
  18. 第1周笔记5-Dijkstra最短路径问题
  19. 蒲公英 · JELLY技术周刊 Vol.12 尤雨溪新作 Vite, 你会支持么?
  20. CAS单点登录(十一)——单点退出

热门文章

  1. 贴片陶瓷电容器材质NPO、COG、X7R、X5R、Y5V、Z5U区别
  2. 基于51单片机的电子钟设计
  3. 律师行业百度竞价分析
  4. 环信IM客户端集成(整理)
  5. 【图像分割】基于FCM和改进的模糊聚类FCM实现脑部CT图像分割matlab源码
  6. mbg中的Example类详解
  7. 逆向工程实验——pre3(reversing.kr写题)
  8. 赚钱宝2代armbian cups 打印机服务器 Windows 7/10/11 如何添加打印机
  9. 中概股周四异动:陌陌大涨18%新浪微博大涨11%
  10. NEXUS 6P刷机安装Edxposed