zoukankan      html  css  js  c++  java
  • Python小技巧:运行目录或ZIP文件

    在写Python程序时,将不同功能代码写在不同文件中是一个好习惯,但是对于某些情况。如需要将脚本提供给别人运行使用,如若将程序写在几个文件中,则需要将文件都发给他人。别人就需要管理不同文件,这样对于别人来说会显得杂乱,麻烦。如果将代码都写在一个文件中,对于简单的脚本没啥毛病,但如果复杂了代码量多了,都写在一个文件,则对自己而言不好维护。

    如果能将不同文件代码放在一个目录中,直接运行目录,不就能解决了这个问题了吗。Python提供这样的方式:Python能直接执行一个包含 __main__.py的目录或者ZIP文件

    例子

    目录结构:

    .
    |—— ABC/
        |—— A.py
        |—— __main__.py
    

    示例代码:

    # A.py
    def echo():
        print('ABC!')
    
    # __main__.py
    if __name == '__main__':
        import A
        A.echo()
    

    运行情况:

    $ python ABC
    ABC!
    

    就如同上面这个简单例子,写代码按照这样的结构,将多个代码文件放在一个目录中,提供一个主程序入口__main__.py。然后运行目录时,python解释器会自动运行__main__.py中的代码。

    此外你还可以直接将多个文件压缩成一个zip文件。直接运行zip文件也同样可以。
    目录结构:

    .
    |—— ABC.zip/
        |—— A.py
        |—— __main__.py
    

    运行情况:

    $ python ABC.zip
    ABC!
    

    其它

    直接运行目录还是压缩成zip,j就看你自己喜欢啥了。不过如果除代码文件外还有其它数据文件的话,可能目录的方式要方便点,你可以直接使用使用这个数据文件。
    而压缩成ZIP文件后,则需要利用解压zip文件的库如zipfile 来读取zip文件内的数据文件。

    自Python3.5 开始,Python标准库中新增了zipapp模块,也可以创建这样的可执行zip文件。

    参考

    《Python Cookbook》

    其它文章

    优雅的查看json数据

    可以的话可以关注一波个人微信公号
    huangsh

  • 相关阅读:
    react-project(二)
    JS--轻松设置获取表单数据
    C#基础---Queue(队列)的应用
    C#基础---Attribute(标签) 和 reflect(反射) 应用二
    C#基础---Attribute(标签) 和 reflect(反射) 应用
    基于Cordova的博客园三方App
    Vue站点的搭建之旅
    移动端浏览器问题汇总
    C#基础---浅谈XML读取以及简单的ORM实现
    WebSite---前台系统图片验证码心得
  • 原文地址:https://www.cnblogs.com/huanping/p/10579562.html
Copyright © 2011-2022 走看看