sys模块
大多属性描述程序的执行环境,是python中十分重要的基础模块
- sys.argv:命令行参数,它是一个列表,不存在argc
for i in sys.argv:
print i
运行结果:
test.py
- sys.platform
获取当前执行环境的平台
print sys.platform
运行结果:
linux2
win32表示是Windows 32bit操作系统,linux2表示是linux平台;
sys.modules
一个字典对象, 描述了当前程序都加载了哪些模块(模块名为key, 模块对象为value).sys.version
Python的版本信息
print sys.version
输出:
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
sys.stdin, sys.stdout, sys.stderr
三个文件对象. 分别对应标准输入, 标准输出, 和标准错误sys.path
path是一个目录列表,供Python从中查找第三方扩展模块。
使用sys.path.append(“mine module path”)
来添加自定义的module
- sys.sys.builtin_module_names
返回一个列表,包含内建模块的名字。
print sys.sys.builtin_module_names
运行结果:
(‘builtin‘, ‘main‘, ‘_ast’, ‘_codecs’, ‘_sre’, ‘_symtable’, ‘_warnings’, ‘_weakref’, ‘errno’, ‘exceptions’, ‘gc’, ‘imp’, ‘marshal’, ‘posix’, ‘pwd’, ‘signal’, ‘sys’, ‘thread’, ‘zipimport’)
- sys.byteorder
返回当前机器的字节序. 值是 ‘big’ 或者 ‘little’
print sys.byteorder
运行结果:
little
- sys.executable
Python解释权的绝对路径
print sys,executable
运行结果:
/usr/bin/python2.7
- sys.exit()
退出Python
当参数非零时,会引发一个SystemExit异常,我们可以在主程序中捕获该异常
try:
sys.exit(1)
except SystemExit:
print 'SystemExit exit 1'
运行结果:
SystemExit exit 1
sys.getrefcount()
获取对象的引用计数. 但是得到的结果会比实际的大(因为调用函数
sys.getrefcount()过程中也创建了新的引用).sys.getrecursionlimit()
获取Python解释器的最大递归深度
print sys.getrecursionlimit()
运行结果:
1000
- sys.getsizeof()
获取一个对象占用的内存空间大小(字节数).
def Func():
pass
print sys.getsizeof('aaaa')
print sys.getsizeof(1)
print sys.getsizeof(1.1)
print sys.getsizeof([])
print sys.getsizeof(())
print sys.getsizeof({})
print sys.getsizeof(Func)
print sys.getsizeof(sys)
运行结果:
41
24
24
72
56
280
120
56
os模块
进程信息:
包含普遍的操作系统功能,它不受平台限制,如果想要程序与平台无关,这个模块十分重要。
- os.getpid(): 获取进程的pid.
- os.getppid(): 获取父进程的pid.
- os.getuid(): 获取用户id.
- os.getenv(): 按key获取当前的环境变量.
- os.putenv(): 按key修改指定的环境变量.
print os.getpid()
print os.getppid()
print os.getuid()
print os.getenv('PATH')
运行结果:
28044
24681
1000
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/sdt/.local/bin:/home/sdt/bin
- os.uname(): 返回一个五元组, 描述操作系统的详细信息
print os.uname()
运行结果:
(‘Linux’, ‘localhost.localdomain’, ‘3.10.0-693.el7.x86_64’, ‘#1 SMP Tue Aug 22 21:09:27 UTC 2017’, ‘x86_64’)
进程管理
- os.abort():生成一个SIGABRT信号,一般会终止进程
- os.exec():进程替换函数族
- os.fork():创建子进程
- os.wait()/os.waitpid():进程等待,返回一个元组,表示子进程的pid和退出码
- os.kill():发信号
- ……
文件操作
- os.open(file, flags[, mode]) :打开file同时根据flags设置变量flags
- os.close(fd):关闭文件描述符fd
- os.read(fd,n):从文件描述符 fd中读取最多n个字节
- os.write(fd,str):写入字符串到文件描述符 fd中
- os.pipe():写入字符串到文件描述符 fd中
- os.dup(fd):返回文件描述符fd的拷贝
- os.dup2(fd,fd2):使fd2成为fd2的拷贝
- ……
其他
- os.getcwd()
得到当前工作目录,即当前Python脚本工作的目录路径。 - os.listdir()
返回指定目录下的所有文件和目录名。 - os.remove()
删除一个文件 - os.system(‘shell命令’)
运行Shell命令 - os.name
指示正在使用的平台。如果是window 则用’nt’表示,对于Linux/Unix用户,它是’posix’。 - os.getloadavg(): 获取系统负载. 返回一个三元组, 返回最近1分钟, 5分钟, 15分钟的系统负载的值.
关于系统负载, 其实是描述系统 繁忙程度 的重要指标. 数字越大说明系统就越忙.
os模块中的函数接口很多,后面有时间再补充~