Python 自动化指南(繁琐工作自动化)第二版:附录 B:运行程序

简介: Python 自动化指南(繁琐工作自动化)第二版:附录 B:运行程序


如果您在 Mu 中打开了一个程序,运行它只需按 F5 或单击窗口顶部的运行按钮。这是一种在编写程序的同时运行程序的简单方法,但是打开 Mu 来运行你完成的程序可能是一种负担。根据您使用的操作系统,有更方便的方法来执行 Python 脚本。

从终端窗口运行程序

当您打开终端窗口(如 Windows 上的命令提示符或 MacOS 和 Linux 上的终端)时,您会看到一个几乎空白的窗口,您可以在其中输入文本命令。你可以从终端运行你的程序,但是如果你不习惯,通过终端(也称为命令行)使用你的计算机可能会令人生畏:不像图形用户界面,它不提供你应该做什么的提示。

在 Windows 上打开一个终端窗口,点击开始按钮,进入命令提示符,按进入。在 MacOS 上,点击右上角的 Spotlight 图标,键入终端,按Enter。在 Ubuntu Linux 上,可以按WIN键调出 Dash,键入终端,按Enter。键盘快捷键CTRL - ALT -T 也会在 Ubuntu 上打开一个终端窗口。

就像交互 Shell 有>>>提示一样,终端会显示提示让你输入命令。在 Windows 上,它将是您当前所在文件夹的完整路径:

C:\Users\Al>your commands go here

在 MacOS 上,提示符显示您的电脑名称、冒号、当前工作目录(您的个人文件夹简称为~)和您的用户名,后面是美元符号($):

Als-MacBook-Pro:~ al$ your commands go here

在 Ubuntu Linux 上,提示符类似于 MacOS,只是它以用户名和一个@符号开始:

al@al-VirtualBox:~$ your commands go here

可以定制这些提示,但这超出了本书的范围。

当你输入一个命令时,比如 Windows 上的python或者 MacOS 和 Linux 上的python3,终端会在你当前所在的文件夹中查找一个同名的程序。如果没有找到,它将检查列在PATH环境变量中的文件夹。你可以将环境变量视为整个操作系统的变量。它们将包含一些系统设置。要查看存储在PATH环境变量中的值,在 Windows 上运行echo %PATH%,在 MacOS 和 Linux 上运行echo $PATH。这里有一个 MacOS 上的例子:

Als-MacBook-Pro:~ al$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/
bin:/bin:/usr/sbin:/sbin

在 MacOS 上,python3程序文件位于/Library/Frameworks/python . framework/Versions/3.7/bin文件夹中,不用进入/Library/Frameworks/Python.framework/Versions/3.7/bin/python3或者先切换到那个文件夹运行;你可以从任何文件夹输入python3,终端会在PATH环境变量的文件夹中找到它。将一个程序的文件夹添加到PATH环境变量是一个方便的快捷方式。

如果你想运行.py程序,必须输入python(或python3),后跟py文件名。这将运行 Python,然后 Python 将运行它在那个py文件中找到的代码。Python 程序完成后,您将返回到终端提示符。例如,在 Windows 上,一个简单的“你好,世界!”程序应该是这样的:

Microsoft Windows [Version 10.0.17134.648]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\Al>python hello.py
Hello, world!
C:\Users\Al>

不带任何文件名运行python(或python3)将导致 Python 启动交互式 shell。

在 Windows 上运行 Python 程序

还有其他一些方法可以在 Windows 上运行 Python 程序。不用打开终端窗口运行你的 Python 脚本,你可以按WIN+R打开运行对话框,输入py C:\path\to\your\PythonScript.py,如图 B-1 所示。py.exe程序安装在C:\Windows\py.exe,已经在PATH环境变量中,键入.exe文件扩展名是运行程序时可选的。

图 B-1:Windows 上的运行对话框

这种方法的缺点是您必须输入脚本的完整路径。此外,虽然从对话框中运行 Python 脚本会打开一个新的终端窗口来显示其输出,但该窗口会在程序结束时自动关闭,您可能会错过一些输出。

您可以通过创建批处理脚本来解决这些问题,它是一个带有bat文件扩展名的小文本文件,可以运行多个终端命令,很像 MacOS 和 Linux 中的 Shell 脚本。您可以使用文本编辑器(如记事本)来创建这些文件。

要创建批处理文件,请创建一个包含单行的新文本文件,如下所示:

@py.exe C:\path\to\your\pythonScript.py %*
@pause

用你自己程序的绝对路径替换这个路径,并用bat文件扩展名保存这个文件 (例如pythonScript.bat )。每个命令开头的@符号防止它显示在终端窗口中,并且%*将在批处理文件名后输入的任何命令行参数转发给 Python 脚本。Python 脚本依次读取sys.argv列表中的命令行参数。这个批处理文件将使您不必在每次想要运行 Python 程序时都键入完整的绝对路径。另外,@pause会在 Python 脚本的结尾加上"Press any key to continue...",防止程序的窗口消失过快。我建议您放置所有批处理和py文件放在一个已经存在于PATH环境变量中的文件夹中,比如C:\Users\<USERNAME>

通过设置批处理文件来运行 Python 脚本,您无需打开终端窗口并输入 Python 脚本的完整文件路径和名称。相反,只需按下WIN+R,输入pythonScript(不需要完整的pythonScript.bat名称),然后按下ENTER来运行您的脚本。

在 MacOS 上运行 Python 程序

在 MacOS 上,可以创建一个 Shell 脚本来运行 Python 脚本,方法是使用.command件扩展名。在文本编辑器(如“文本编辑”)中创建新文件,并添加以下内容:

#!/usr/bin/env bash
python3 /path/to/your/pythonScript.py

在你个人文件夹(比如我的电脑上是/Users/al)中使用.command文件扩展名保存文件。在终端窗口中,通过运行chmod u+x yourScript.command使这个 Shell 脚本可执行。现在,您将能够单击 Spotlight 图标(或按下Cmd+Space)并输入yourScript.command来运行 Shell 脚本,这将依次运行您的 Python 脚本。

在 Ubuntu Linux 上运行 Python 程序

在 Ubuntu Linux 中从 Dash 菜单运行 Python 脚本需要大量的设置。假设我们有一个/home/al/example.py脚本(您的 Python 脚本可能在不同的文件夹中,有不同的文件名),我们想从 Dash 运行它。首先,使用文本编辑器如gedit创建一个包含以下内容的新文件:

[Desktop Entry]
Name=example.py
Exec=gnome-terminal -- /home/al/example.sh
Type=Application
Categories=GTK;GNOME;Utility;

将该文件保存到/home/al/local/share/application文件夹中(如果你的文本编辑器没有显示example.desktop,用自己的用户名替换al)。本地文件夹(因为以句点开头的文件夹被认为是隐藏的),您可能需要将其保存到您的个人文件夹(如/home/al )中,并打开一个终端窗口以使用mv /home/al/example.desktop /home/al/.local/share/applications命令移动该文件。

example.desktop文件在/home/al/local/share/applications文件夹,你可以按下键盘上的 Windows 键调出 Dash 并输入example.py (或者你为Name字段输入的任何内容)。这将打开一个新的终端窗口(具体来说,是运行/home/al/example.sh Shell 脚本的gnome-terminal程序),我们接下来将创建这个脚本。

在文本编辑器中,创建一个包含以下内容的新文件:

#!/usr/bin/env bash
python3 /home/al/example.py
bash

将这个文件保存到/home/al/example.sh。这是一个 Shell 脚本:运行一系列终端命令的脚本。这个 Shell 脚本将运行我们的 Python 脚本/home/al/example.py,然后运行 bash Shell 程序。如果最后一行没有 bash 命令,Python 脚本一完成,终端窗口就会关闭,您将错过print()函数调用在屏幕上显示的任何文本。

您需要向这个 Shell 脚本添加执行权限,因此从终端窗口运行以下命令:

al@ubuntu:~$ chmod u+x /home/al/example.sh

设置好example.desktopexample.sh文件后,您现在可以通过按 Windows 键并输入example.py (或者您在example.desktop文件的Name字段中输入的任何名称)来运行example.py脚本。

运行禁用断言的 Python 程序

您可以在 Python 程序中禁用assert语句,以获得轻微的性能提升。当从终端运行 Python 时,在pythonpython3之后和py文件名称之前包含-O开关。这将运行您的程序的优化版本,跳过断言检查。

相关文章
|
25天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
143 61
|
6天前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
49 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
1月前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
187 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
18天前
|
存储 NoSQL 数据库连接
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
60 28
|
17天前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
50 3
|
1月前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
77 6
|
1月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
127 5
|
1月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
76 7
|
30天前
|
Shell 开发工具 Python
如何在vim里直接运行python程序
如何在vim里直接运行python程序
|
7月前
|
Python Windows
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)

热门文章

最新文章