涨见识了,在终端执行 Python 代码的 6 种方式!

这篇具有很好参考价值的文章主要介绍了涨见识了,在终端执行 Python 代码的 6 种方式!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我意识到其他人可能不知道有五花八门的方法可以将 Python 指向要执行的代码,因此有了这篇文章。

1、通过标准输入和管道

因为如何用管道传东西给一个进程是属于 shell 的内容,我不打算深入解释。毋庸置疑,你可以将代码传递到 Python 中。

# 管道传内容给 python
echo "print('hi')" | python

如果将文件重定向到 Python,这显然也可以。

# 重定向一个文件给 python
python < spam.py

归功于 Python 的 UNIX 传统,这些都不太令人感到意外。

2、通过-c 指定的字符串

如果你只需要快速地检查某些内容,则可以在命令行中将代码作为字符串传递。

# 使用 python 的 -c 参数
python -c "print('hi')"

当需要检查仅一行或两行代码时,我个人会使用它,而不是启动 REPL(译注:Read Eval Print Loop,即交互式解释器,例如在 windows 控制台中输入python, 就会进入交互式解释器。-c 参数用法可以省去进入解释器界面的过程) 。

3、文件的路径

最众所周知的传代码给 python 的方法很可能是通过文件路径。

# 指定 python 的文件路径
python spam.py

要实现这一点的关键是将包含该文件的目录放到sys.path 里。这样你的所有导入都可以继续使用。但这也是为什么你不能/不应该传入包含在一个包里的模块路径。因为sys.path 可能不包含该包的目录,因此所有的导入将相对于与你预期的包不同的目录。

4、对包使用 -m

执行 Python 包的正确方法是使用 -m 并指定要运行的包名。

python -m spam

它在底层使用了runpy [5]。要在你的项目中做到这点,只需要在包里指定一个__main__.py 文件,它将被当成__main__ 执行。而且子模块可以像任何其它模块一样导入,因此你可以对其进行各种测试。

我知道有些人喜欢在一个包里写一个main 子模块,然后将其__main__.py 写成:

from . import main

if __name__ == "__main__":
    main.main()

就我个人而言,我不感冒于单独的main 模块,而是直接将所有相关的代码放入__main__.py ,因为我感觉这些模块名是多余的。

5、目录

定义__main__.py也可以扩展到目录。如果你看一下促成此博客文章的示例,python news 可执行,就是因为 news 目录有一个 __main__.py 文件。该目录就像一个文件路径被 Python 执行了。

终端打开python,python,开发语言,服务器,数据库,前端

现在你可能会问:“为什么不直接指定文件路径呢?”好吧,坦白说,关于文件路径,有件事得说清楚。😄在发布过程中,我可以简单地写上说明,让运行python news/announce.py ,但是并没有确切的理由说明这种机制何时存在。

再加上我以后可以更改文件名,而且没人会注意到。再加上我知道代码会带有辅助文件,因此将其放在目录中而不是单独作为单个文件是有意义的。

当然,我也可以将它变为一个使用 -m 的包,但是没必要,因为 announce 脚本很简单,我知道它要保持成为一个单独的自足的文件(少于 200 行,并且测试模块也大约是相同的长度)。

况且,__main__.py 文件非常简单。

import runpy
# Change 'announce' to whatever module you want to run.
runpy.run_module('announce', run_name='__main__', alter_sys=True)

现在显然必须要处理依赖关系,但是如果你的脚本仅使用标准库或将依赖模块放在__main__.py 旁边(译注:即同级目录),那么就足够了!

(译注:我觉得作者在此有点“炫技”了,因为这种写法的前提是得知道 runpy 的用法,但是就像前一条所写的用 -m 参数运行一个包,在底层也是用了 runpy。不过炫技的好处也非常明显,即__main__.py 里不用导入 announce 模块,还是以它为主模块执行,也就不会破坏原来的依赖导入关系)

6、执行一个压缩文件

如果你确实有多个文件和/或依赖模块,并且希望将所有代码作为一个单元发布,你可以用一个__main__.py ,放置在一个压缩文件中,并把压缩文件所在目录放在 sys.path 里,Python 会替你运行__main__.py 文件。

# 将一个压缩包传给 Python
python app.pyz

人们现在习惯上用 .pyz 文件扩展名来命名此类压缩文件,但这纯粹是传统,不会影响任何东西;你当然也可以用 .zip 文件扩展名。

为了简化创建此类可执行的压缩文件,标准库提供了zipapp [7]模块。它会为你生成__main__.py并添加一条组织行(shebang line),因此你甚至不需要指定 python,如果你不想在 UNIX 上指定它的话。如果你想移动一堆纯 Python 代码,这是一种不错的方法。

不幸的是,仅当压缩文件包含的所有代码都是纯 Python 时,才能这样运行压缩文件。执行压缩文件对扩展模块无效(这就是为什么 setuptools 有一个 zip_safe [8]标志的原因)。(译注:扩展模块 extension module,即 C/C++ 之类的非 Python 文件)

要加载扩展模块,Python 必须调用 dlopen() [9]函数,它要传入一个文件路径,但当该文件路径就包含在压缩文件内时,这显然不起作用。

我知道至少有一个人与 glibc 团队交谈过,关于支持将内存缓冲区传入压缩文件,以便 Python 可以将扩展模块读入内存,并将其传给压缩文件,但是如果内存为此服务,glibc 团队并不同意。

但是,并非所有希望都丧失了!你可以使用诸如shiv [10]之类的项目,它会捆绑(bundle)你的代码,然后提供一个__main__.py 来处理压缩文件的提取、缓存,然后为你执行代码。尽管不如纯 Python 解决方案理想,但它确实可行,并且在这种情况下算得上是优雅的。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

终端打开python,python,开发语言,服务器,数据库,前端 ## 1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
终端打开python,python,开发语言,服务器,数据库,前端

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
终端打开python,python,开发语言,服务器,数据库,前端

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
终端打开python,python,开发语言,服务器,数据库,前端

2️⃣国内外Python书籍、文档

① 文档和书籍资料

终端打开python,python,开发语言,服务器,数据库,前端

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
终端打开python,python,开发语言,服务器,数据库,前端

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
终端打开python,python,开发语言,服务器,数据库,前端

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
终端打开python,python,开发语言,服务器,数据库,前端

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
终端打开python,python,开发语言,服务器,数据库,前端
终端打开python,python,开发语言,服务器,数据库,前端

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
终端打开python,python,开发语言,服务器,数据库,前端

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓文章来源地址https://www.toymoban.com/news/detail-764526.html

终端打开python,python,开发语言,服务器,数据库,前端

到了这里,关于涨见识了,在终端执行 Python 代码的 6 种方式!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 创建 Python 脚本以在 Linux 中打开新终端并运行命令

    Linux 操作系统以其程序员广泛使用的多功能终端而闻名。 但在某些情况下,我们会发现自己重复编写同一组语法,这可能既无聊又耗时。 你有没有想过是否有一种方法可以在文件中预先编写 Linux 命令,然后在终端中立即执行? 是的! 你可以。 您可以在文件中编写预先编写

    2024年02月04日
    浏览(49)
  • 实现以管理员权限打开window终端cmd,并在终端里执行多条指令的功能

    本文实现以管理员权限打开window终端cmd,并在终端里执行多条指令的功能。 以挂载vhd虚拟盘、卸载vhd虚拟盘为例。 一、挂载vhd虚拟盘 C#工程 vhdAttach, 生成vhdAttach.exe,vhdAttach.exe的功能为:启动windows终端cmd.exe,读取attach-vhd.txt中的内容,并在终端里执行attach-vhd.txt中的多条指令

    2024年02月10日
    浏览(57)
  • 【python】flask各种版本的项目,终端命令运行方式的实现

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年03月27日
    浏览(42)
  • 终于见识到 Python 的天花板。。

    Python 有很多衍生方向,比如 web 开发、网络爬虫、数据分析、数据挖掘、机器学习、人工智能等等,就业范围是很广的,Python 相较于别的编程语言对小白入门还是很友好的, Python 入门推荐这份学习资料: PYTHON全案例实践 这本学习资料在内容组织和框架设计上具有两个鲜明

    2023年04月09日
    浏览(35)
  • Python 打开网页的几种方式

    方法1:直接调用系统命令 os 方法2:引用webrowser包 方法3:引用selenium工具,解决闪退问题 附:Pycharm 安装selenium 工具说明

    2024年02月16日
    浏览(50)
  • 8 种「Python 程序」定时执行方式

    最近我整理了一下 Python 定时任务的实现方式,建议收藏后学习。   位于 time 模块中的 sleep(secs) 函数,可以实现令当前执行的线程暂停 secs 秒后再继续执行。所谓暂停,即令当前线程进入阻塞状态,当达到 sleep() 函数规定的时间后,再由阻塞状态转为就绪状态,等待 CPU 调度

    2024年02月14日
    浏览(24)
  • Python打开Windows可执行性程序的几种方法(Windows窗口自动化第一步)

    方法一:用Pywinauto第三包 方法二:使用os.system函数运行其他程序 方法三:win32api第三包使用ShellExecute函数运行其他程序 方法四:使用win32process.CreateProcess函数 方法七:用ctpyes模块调用C函数

    2024年02月16日
    浏览(59)
  • python,如何设置定时执行python代码-windows本地

    最近写了一个python小程序,希望能每天定时执行,但是又不想用jenkins这样的工具,后来发现windows本地就可以设置,而且很好用,具体步骤如下: 首先,需确保本地python代码已编写好,环境变量已配置好,能运行成功; 1)依次进入:控制面板-大图标-管理工具-任务计划程序

    2024年02月10日
    浏览(41)
  • 在Sublime中执行Python代码

    目录 一、ctrl + b 自动在Sublime内置的控制台中执行 二、使用SublimeREPL插件来运行python代码     1.安装SublimeREPL插件 ​编辑 2.安装完成后,设置快捷键,希望按f5则自动执行当前的Python代码         在Sublime中执行Python代码,ctrl + b 自动在Sublime内置的控制台中执行这种执行方式

    2024年02月07日
    浏览(31)
  • 运行Windows终端提示由于找不到mscoree.dll无法继续执行代码

    ​Windows终端可以说是Windows系统中非常重要的功能之一,可以帮助用户通过命令行的模式来调整电脑,但是最近不少用户在运行的时候却提示由于找不到mscoree.dll无法继续执行代码,下面小编就带着大家一起具体看看怎么解决这个问题吧! 更多重装系统教程参考小白系统网 操

    2024年02月04日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包