说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
作为一名 Python 开发人员,你需要构建的最重要的技能之一就是能够运行 Python 脚本和代码。 这将是您了解代码是否按计划工作的唯一方法。本文主要介绍如何使用命令行来执行 Python 脚本。
一般情况下,你可以通过以下方式来运行你写的 Python 脚本:
交互模式下,你在电脑的终端,输入 python 或者 ipython (Python的一个交互式解释器),便可进入交互式运营环境,加输入代码,按回车可执行。
>>> print('Hello World')
Hello World
>>> 1 + 1
2
一个交互式会话将允许您测试您编写的每一段代码,这使它成为一个很棒的开发工具,也是一个很好的实验语言和动态测试 Python 代码的地方。
如果想退出可以执行 quit() 或者 exit() 函数, 它们是 Python 内置的函数。
命令行或终端的打开方式为:
cmd.exe
的程序。该程序的路径可能因系统版本而异。快速访问它的方法是按 Win+R 组合键,这将带您进入“运行”对话框。 到达那里后,输入 cmd 并按 Enter。如果安装了 conda 之类的发行版本解释器,也会提供专门的终端,可直接使用。
Python 交互式会话将允许您编写很多代码行,但是一旦您关闭会话,您将丢失您编写的所有内容。 这就是为什么编写 Python 程序的常用方法是使用纯文本文件。 按照惯例,这些文件将使用 .py 扩展名。 (在 Windows 系统上,扩展名也可以是 .pyw)
可以使用任何纯文本编辑器创建 Python 代码文件。 如果你是 Python 编程新手,可以试试 Sublime Text,它是一个功能强大且易于使用的编辑器,但你可以使用任何你喜欢的编辑器。
命令行是在终端中执行的。调用 Python 时,可以指定下列任意选项,语法为:
python [-bBdEhiIOqsSuvVWx?] [-c command | -m module-name | script | - ] [args]
最常见的用例是启动时执行脚本:
python myscript.py
# 带文件目录的
python hui/py/myscript.py
如果脚本不在当前位置或者不想使用相对定位,可以先用 cd 并配置 ls 命令定位查看,确定脚本所在的目录。
脚本执行完成后会自动退出执行,如果执行过程中想退出,可以: UNIX(包括 MAC)中按 Ctrl-D,Windows 中按 Ctrl-Z, Enter。
假如我们编写一个名为 hello.py 的脚本:
# hello.py
print('Hello World!')
保存后,在终端执行(输入命令后回车),就会输出结果:
$ python hello.py
Hello World!
有时,保存脚本的输出以供以后分析很有用。您可以这样做:
$ python hello.py > output.txt
此操作将脚本的输出重定向到 output.txt,而不是标准系统输出 (stdout)。 该过程通常称为流重定向(stream redirection),可在 Windows 和类 Unix 系统上使用。
如果 output.txt 不存在,则会自动创建。 另一方面,如果文件已经存在,那么它的内容将被新的输出替换。
最后,如果要将连续执行的输出添加到 output.txt 的末尾,那么必须使用两个尖括号 (>>) 而不是一个,就像这样:
$ python hello.py >> output.txt
Python 提供了一系列命令行选项,您可以根据需要使用它们。 例如,如果要运行 Python 模块,可以使用命令 python -m <module-name>
。
-m 选项在 sys.path 中搜索模块名称并将其内容作为 __main__
运行:
$ python -m hello
Hello World!
模块名称必须是模块对象的名称,而不是字符串。
可以接受一些参数,传入脚本内部执行。我们创建以下一个脚本文件:
# hello.py
import sys
a=sys.argv[0]
b=sys.argv[1]
print(f'{a}, {b}!')
执行命令:
% python hello.py hello world
hello.py, hello!
打印出了脚本名,这是由于 sys.argv[0]
为脚本名,我们将其调整为从 1 开始:
# hello.py
import sys
a=sys.argv[1]
b=sys.argv[2]
print(f'{a}, {b}!')
再执行命令:
% python hello.py hello world
hello, world!
可以看到成功接受了我们传入的两个参数。
还可以将传入的信息做分隔转为列表:
import sys
a=sys.argv
print(a)
执行后:
% python hello.py a, b,c,d
['hello.py', 'a,', 'b,c,d']
以下是一些通用的功能:
# 命令帮助
% python -h
% python --help
# Python 版本查看
% python -V
% python --version
% python -VV # 更多构建信息
if __name__ == '__mian__'
的意义,详见。
更新时间:2023-05-18 10:12:49 标签:python 命令行 脚本