Python 附录

查看全部 Python3 基础教程

交互模式

错误处理

当发生错误时,解释器会打印错误信息和错误堆栈。在交互模式下,将返回到主命令提示符;如果输入内容来自文件,在打印错误堆栈之后,程序会以非零状态退出。(这里所说的错误不包括 try 语句中由 except 所捕获的异常。) 有些错误是无条件致命的,会导致程序以非零状态退出,比如内部逻辑矛盾或内存耗尽。所有错误信息都会被写入标准错误流,而命令的正常输出则被写入标准输出流。

在主提示符或辅提示符中键入中断字符(通常为 Control-CDelete)会取消输入并返回至主提示符(GNU Readline 包的问题可能会阻止这种情况)。在执行命令时键入中断会引发 KeyboardInterrupt 异常,该异常可以由 try 语句处理。

可执行 Python 脚本

在 BSD 类的Unix系统上,可以将 Python 脚本像 shell 脚本一样直接执行,方法是:
#!/usr/bin/env python3.5

假设解释器在用户的 PATH 上。

在脚本的开头,指定文件为可执行模式。#! 必须是文件的前两个字符。在某些平台上,第一行必须以 Unix 风格的行结束符 \n 结束,而不能是 Mac 的 \r 或 Windows 的 \r\n 的结束符。注意,# 用于在 Python 中启动注释。

可以使用 chmod 命令为脚本提供可执行模式或权限:
$ chmod +x myscript.py

在 Windows 系统上,没有“可执行模式”的概念。Python 安装程序会自动将 .py 文件与 python.exe 关联,这样双击 Python 文件就会将其作为脚本运行。扩展名也可以是 .pyw,在这种情况下,会隐藏通常出现的控制台窗口。

交互式环境的启动文件

使用 Python 解释器的时候,可能需要在每次解释器启动时执行一些命令。可以在一个文件中包含想要执行的命令,然后设定一个名为 PYTHONSTARTUP 的环境变量来指定这个文件。这类似于 Unix shell 的 .profile 文件。

该文件只在交互式会话中被读取,以下两种情况都不会读取该文件:
1、当 Python 从脚本读取命令时;
2、当 /dev/tty 明确作为命令源时,这个类似于交互式会话。

该文件执行时所在的命名空间与交互式指令相同,所以它定义或导入的对象可以在交互式会话中直接使用。还可以在该文件中更改提示 sys.ps1sys.ps2

如果想要从当前目录中读取其他启动文件,可以在全局启动文件中加入类似 if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read()) 的代码。

如果想要在某个脚本中使用启动文件,必须在脚本中写入这样的语句:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    with open(filename) as fobj:
        startup_file = fobj.read()
    exec(startup_file)

自定义模块

Python 提供了两个钩子以便自定义:sitecustomizeusercustomize。要了解其工作原理,就要先找到用户 site-packages 目录的位置。启动 Python 并运行以下代码:

>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.5/site-packages'

现在可以在该目录中创建一个名为 usercustomize.py 的文件,并将所需内容放入其中。它会影响 Python 的每次调用,除非它以 -s 选项启动,这会禁用自动导入。

sitecustomize 工作方式相同,但通常由计算机管理员在全局 site-packages 目录中创建,并在 usercustomize 之前被导入。详情可以参考 site 模块的文档。




参考资料

Python3 Tutorial – Appendix

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值