Python必学的OS模块详解,python怎么引入os模块的函数_2

  Python必学的OS模块详解,python怎么引入os模块的函数

  Os模块代表程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息。

  在Python的交互解释器中,首先导入os模块,然后进入os。__all__ command (__all__变量代表模块开放的公共接口),可以看到模块包含的所有属性和函数。

  这里只介绍os模块中常用的属性和功能:

  Os.name:返回导入的依赖模块的操作系统名,通常为 posix 、 nt 和 java 中的一个。

  返回当前系统上所有环境变量的字典。

  Os.fsencode(filename):这个函数对类路径的文件名进行编码(类似路径)。

  Os.fsdecode(filename):这个函数解码类路径的文件名(类路径)。

  Os。PathLike:这是一个表示类路径(类路径)对象的类。

  Os.getenv(key,default=None):获取指定环境变量的值。

  Os.getlogin():返回当前系统的登录用户名。与该函数相对应的是os.getuid()、os.getgroups()、os.getgid()等函数,用于获取用户id、用户组、组id等。这些函数通常只在UNIX系统上有效。

  Os.getpid():获取当前进程id。

  Os.getppid():获取当前进程的父进程id。

  Os.putenv(key,value):这个函数用来设置环境变量。

  Os.cpu_count():返回当前系统中cpu的数量。

  Os.sep:返回路径分隔符。

  返回当前系统中多个路径之间的分隔符。一般Windows系统上多个路径之间的分隔符是英文分号(;);在UNIX和类UNIX系统(如Linux和Mac os X)上,多个路径之间的分隔符是英文冒号(:)。

  返回当前系统的换行符。一般在Windows系统上换行符是“\ r \ n”;在UNIX系统上,换行符是“\ n”;在Mac os X系统上,换行符是“\r”。

  Os.urandom(size):返回一个适用于加密的bytes对象,最多包含N个字节。这个函数通过特定于操作系统的随机源返回一个随机字节。这个随机字节通常是不可预测的,因此它适用于大多数加密场景。

  下面的程序演示了os模块的大多数功能的用法:

  进口货

  #显示导入相关模块的操作系统的名称。

  打印(操作系统名称)

  #获取PYTHONPATH环境变量的值

  print(os.getenv(PYTHONPATH ))

  #返回当前系统的登录用户名

  print(os.getlogin())

  #获取当前进程ID

  print(os.getpid())

  #获取当前进程的父进程ID

  print(os.getppid())

  #返回当前系统中CPU的数量

  print(os.cpu_count())

  #返回路径分隔符

  打印(os.sep)

  #返回当前系统的路径分隔符

  打印(os.pathsep)

  #返回当前系统的换行符

  打印(os.linesep)

  #返回适合加密的最多3个字节的字节。

  Print(os.urandom(3))运行上面的程序,可以看到以下输出结果:

  新约(new testament的缩写)

  没有人

  耶库

  9904

  12036

  八

  \

  ;

  B\x12\x1e\xcf 从上面的输出结果可以看出,Python导入依赖模块在Windows系统上的操作系统名称是“NT”;当前系统的登录用户名为“yeeku”:当前进程ID为“9904”;当前流程的父流程ID为“12036”;目前有8个CPU在制度上;当前系统(Windows)的路径分隔符是“\”;当前系统(Windows)上多个路径之间的分隔符是分号(;);但是在目前的系统(Windows)上,换行符是看不清楚的,因为在控制台上输出“\r\n”时会生成两行空行。

  。此外,在 os 模块下还包含大量操作文件和目录的功能函数,本教程将会在后续章节专门介绍这些功能函数。

  在 os 模块下还包含各种进程管理函数,它们可用于启动新进程、中止己有进程等。在 os 模块下与进程管理相关的函数如下:

  os.abort():生成一个 SIGABRT 信号给当前进程。在 UNIX 系统上,默认行为是生成内核转储;在 Windows 系统上,进程立即返回退出代码 3。

  os.execl(path, arg0, arg1, ...):该函数还有一系列功能类似的函数,比如 os.execle()、os.execlp() 等,这些函数都是使用参数列表 arg0, arg1,...来执行 path 所代表的执行文件的。

  os.forkpty():fork一个子进程。

  os.kill(pid, sig):将 sig 信号发送到 pid 对应的过程,用于结束该进程。

  os.killpg(pgid, sig):将 sig 信号发送到 pgid 对应的进程组。

  os.popen(cmd, mode='r', buffering=-1):用于向 cmd 命令打开读写管道(当 mode 为 r 时为只读管道,当 mode 为 rw 时为读写管道),buffering 缓冲参数与内置的 open() 函数有相同的含义。该函数返回的文件对象用于读写字符串,而不是字节。

  os.spawnl(mode, path, ...):该函数还有一系列功能类似的函数,比如 os.spawnle()、os.spawnlp() 等,这些函数都用于在新进程中执行新程序。

  os.startfile(path[,operation]):对指定文件使用该文件关联的工具执行 operation 对应的操作。如果不指定 operation 操作,则默认执行打开(open)操作。operation 参数必须是有效的命令行操作项目,比如 open(打开)、edit(编辑)、print(打印)等。

  os.system(command):运行操作系统上的指定命令。

  下面程序示范了在 os 模块中与进程管理相关的函数的功能:

  

importos

  #运行平台上的cmd命令

  os.system('cmd')

  #使用Excel打开g:\abc.xls文件

  os.startfile('g:\\abc.xls')

  os.spawnl(os.P_NOWAIT,'E:\\Tools\\编辑工具\\Notepad++.7.5.6.bin.x64\\notepad++.exe','')

  #使用python命令执行os_test.py程序

  os.execl("D:\\Python\\Python36\\python.exe","",'os_test.py','i')

如果直接运行上面程序,可以看到程序运行后使用 Excel 打开了 abe.xls 文件,也打开了 Notepad++ 工具,还使用 python 命令运行了 os_test.py 文件。但如果将程序中粗体字代码取消注释,将看到程序运行后只是启动了 cmd 命令行程序,这是因为使用 as.system() 函数来运行程序时,新程序所在的进程会替代原有的进程。

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: