本节书摘来自异步社区《树莓派Python编程入门与实战》一书中的第3章,第3.7节,作者【美】Richard Blum,译者 王超,更多章节内容可以访问云栖社区“异步社区”公众号查看。
3.7 创建Python脚本
你可以将Python语句写入文件后再批量运行它们,而不是在每次需要运行程序的时候都一行一行输入进去。这些包含Python语句的文件叫作脚本。
你可以通过Python交互式shell或者用IDLE运行这些Python脚本。清单3.3显示了名为sample.py的脚本文件,它包含两个语句。
清单3.3 sample.py脚本
pi@raspberrypi ~ $ cat py3prog/sample.py
print ("Here is a sample python script.")
print ("Here is the second line of the sample script.")
pi@raspberrypi ~ $
提示:
sample.py在哪儿?
在你的树莓派上是找不到这个脚本py3prog/sample.py的。它是为本书而创建的。在本章的后面,你将学会如何创建自己的Python脚本。
3.7.1 在交互式shell里运行Python脚本
为了在Python交互式shell里执行sample.py脚本,可以在命令行键入python3 py3prog/sample.py然后按回车键。清单3.4显示了结果。就像你看见的那样,shell执行了两条语句并且没有出现任何问题。
清单3.4 执行sample.py
pi@raspberrypi ~ $ python3 py3prog/sample.py
Here is a sample python script.
Here is the second line of the sample script.
pi@raspberrypi ~ $
提示:
脚本存储位置
把你的Python脚本存储在一个标准的位置是个不错的注意。本书使用子文件夹/home/pi/py3prog。
要在IDLE中运行sample.py脚本,首先启动IDLE然后在交互式主窗口按组合键Ctrl+O或者选择File菜单中的Open项。然后Open窗口会打开,定位到Python脚本所在的位置,在这个例子中,sample.py在/home/pi/py3prog目录,如图3.8所示。选中脚本然后单击Open按钮打开。
当你单击Open按钮时,另一个IDLE窗口会打开,它会显示Python脚本并在窗口的标题栏显示它的位置和名字(见图3.9)。
现在,运行Python脚本,在Python脚本窗口,按F5键或单击Run菜单然后选择Run Module。控制会切回到最初打开的IDLE窗口(IDLE交互模式窗口),然后Python脚本的运行结果会被显示出来,如图3.10所示。
警告:
我的脚本在哪里输出?
当你第一次使用IDLE时,你可能会对Python脚本输出到哪里感到困惑。只要记住,输出始终被显示在IDLE的主要交互模式窗口中。在这个窗口的标题栏上写有“Python shell”。不管你正在运行一个脚本还是输入一条条Python语句,都是这样。
现在你已经知道两种运行脚本的方法了,是时候看看如何创建一个脚本了。同样你有两种方法可供选择。
3.7.2 使用IDLE创建一个脚本
在IDLE中创建脚本非常容易。在IDLE交互模式窗口上按Ctrl+N组合键或者单击File菜单,然后选择New Window可以轻松打开一个IDLE文本编辑窗口。你会看到这个新打开的窗口的标题栏上显示“Untitl-ed”。它是一个基本的IDLE文本编辑器。在这个模式下,当你输入Python语句时,他们不会被执行,当然也就没有输出会被显示。
在基本的IDLE文本编辑器中,输入一些Python语句来创建你的脚本。完成之后,你可以把这些语句存储到一个文件里。
技巧:
在IDLE中进行编辑
你不应局限于仅使用方向键和清除键编辑文本文件。看看在编辑菜单中的所有可用选项。你可以撤销一个修改,查找单词,复制和粘贴等。IDLE文本编辑器可能功能比较简单,但它能为你提供很大的帮助。
要保存Python脚本文件,可以通过按Ctrl + S组合键或通过单击File菜单,然后选择Save。一个Save As窗口就会出现,如图3.11所示。选择至你要保存文件的目录。输入文件的名字,然后单击Save按钮。
技巧:
Python脚本中的“py”
在图3.11中文件结尾有一个.py。这个文件扩展名指明它是一个Python脚本。因此,所有的Python脚本都应像filename.py一样命名。
3.7.3 使用文本编辑器创建一个Python脚本
除了IDLE之外还有一些其他的文本编辑器可以使用。在Raspbian上有两个默认可用的编辑器。一个是Leaf Pad, 它是一个面向学龄儿童的工具。另一个是nano。
nano文本编辑器非常小型及轻量化,对树莓派来说非常完美。和其他的更复杂的文本编辑器相比,nano非常易用。nano相较于IDLE中的编辑器,最大的优点是它可以同时在GUI和命令行中使用!
在命令行中,你可以输入nano然后回车来启动nano文本编辑器。要在图形界面中启动nano,你可以单击LXPanel的最左侧的LXDE程序菜单图标,然后将鼠标悬停在其他子菜单上,在显示的菜单上单击选择Nano菜单项。
但是注意,nano文本编辑器不会对Python语句进行任何语法检查。它也不会在你输入代码进行任何代码高亮变色的提示。当然,它也不会进行自动缩进。nano在你编辑Python脚本时不会提供任何手把手的帮助。
图3.12显示图形界面中的nano文本编辑器。注意在图形界面中,LXTerminal是打开的,nano编辑器正在其中运行。nano编辑器的标题栏是从左边“GNU nano”和nano编辑器版本号下方开始的那条线。而标题栏的中间在创建新文件时会显示“New Buffer”,或者是你正在编辑的文件的名字。
nano编辑器的中间面板是编辑区域。这里是你添加新的Python语句或者对现存的文件进行修改的地方。
提示:
消息区
在nano编辑器的窗口底部两行的右上方是一个特殊的消息、问题区域。这块区域通常是空白的。但是当有一条消息或者问题,例如File Name to Write:,它就会被显示在这里。
nano编辑器底部两行的内容是通常被用到的键盘命令。这些快捷键实际上是nano文本编辑器的命令。这个窗口使用^来表示Ctrl键。因此,命令^G表示使用Ctrl+G组合键。表3.2列出了一些nano编辑器的基本命令。
如果你想要了解nano编辑器的更多信息,你可以按Ctrl+G组合键阅读它的帮助信息。另一个途径是访问nano编辑器的主页www.nanoeditor.org。