概述¶
注解
学习 Python 不要将时间浪费在记 API 的功能上,而应该学习 Python 的编程理念。
对于重要模块 os, sys,应该尽量熟悉模块里的方法和属性;
对于常用的 API,应该熟悉使用方法;记不住也没关系,重要的是要学会使用 Python Manuals
。
os 和 sys 模块¶
sys 模块与 Python 解析器相关:
sys.path
列举了 Python 解析器真正的搜索路径。 当模块被载入时,Python 从左到右依次获取
sys.path
中的目录。 每获取一个目录,就遍历目录中的文件,直至找到和模块名相同的文件名为止。
sys.path
在 Python 解析器运行的时候初始化。 Python 加载环境变量PYTHONPATH
的值,作为 sys.path 的初始值。 当然sys.path
的值不都是来自于PYTHONPATH
,它的值是可以修改的。警告
对
sys.path
的修改维持到 Python 解析器退出访问
sys.path
可以使用os.getcwd()
函数。
sys.modules
列举已经加载的模块。 这是一个字典结构
sys.exec_info()
发生异常时,可以通过这个接口获取异常类型,值以及回溯对象。
- 标准输入输出流
标准流包括:
sys.stdin
sys.stdout
sys.stderr
sys.argv
获取命令行参数
os 模块与 Python 解析器运行的操作系统有关:
环境变量 os.environ 运行程序工具 os.system 创建进程 os.fork 描述文件和锁 os.open 文件处理 os.remove, os.rename 管理工具 os.getcwd 跨平台工具 os.path os.sep 路径名工具 os.path
脚本中运行命令行¶
os 模块提供了工具,可以在 Python 脚本中执行命令行。
函数名 功能 os.system 在 Python 脚本中执行命令行 os.popen 执行命令行并连接输入输出流
另外, 模块 subprocess
对命令行中流的控制比上面两个函数更全面。
与命令行的“通信”¶
os.system()
只是简单地运行命令行;os.popen()
连接命令的标准输入或者输出流。
默认情况下,获取一个类文件对象,连接命令行的输出(如果用 'w'
标志,则是命令行的输入)。
通过该对象,可以读取命令行产生的输出。
1 2 | os.popen('type 1.txt').read()
os.popen('type 2.txt').readlines()
|
程序使用方式¶
每个 Python 模块都有一个属性变量 __name__
。
当 Python 将模块当做程序运行时,模块的 __name__
的值为 __main__
;
当模块作为库文件加载时,__name__
的值不再是 __main__
。