Python中的sys模块和os模块

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模块中的函数接口很多,后面有时间再补充~

猜你喜欢

转载自blog.csdn.net/shidantong/article/details/81130168