Python os 模块

Python OS模块提供了简单的功能,允许我们与操作系统交互并获取操作系统信息,甚至在一定程度上控制进程。

Python OS模块

OS模块提供的功能使我们能够操作底层操作系统任务,无论是Windows平台、Macintosh还是Linux。在本课程中,我们将回顾这些功能以及我们可以做些什么。让我们从这些功能以及它们提供的信息开始我们的旅程。

Python导入os

请注意,首先我们必须在程序中导入OS模块,然后才能执行任何它的函数。

os.name

该函数提供导入的OS模块的名称。这取决于底层操作系统。目前,它注册了’posix’、’os2’、’ce’、’nt’、’riscos’和’java’。让我们在系统上执行这个:

>>> print(os.name)
posix

显然,这可以根据解释器输出不同的平台。

os.environ

environ不是一个函数,而是一个进程参数,通过它我们可以访问系统的环境变量。让我们看一个示例代码片段:

import os
output = os.environ['HOME']
print(output)

当我们运行这个脚本时,以下将是输出:我们可以使用它来处理环境变量,更多信息请参阅Python设置环境变量

os.execvp

execvp函数是在系统上运行其他命令的一种方式。让我们看一下这个函数的示例代码片段:

import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) +  tuple(arguments)))

为此,我们只是创建了一个名为hello.py的示例脚本,其中包含以下代码:

print('Hello')

当我们运行这个脚本时,以下将是输出:

os.getuid

这个os模块函数返回当前进程的用户ID或UID,正如它被广泛称为的那样。

>>> os.getuid()
501

因此,当前的shell进程ID是501。

os.rename

使用Python os重命名函数,我们可以轻松地重命名一个文件。

import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')

请注意,为此,我们必须为我们的脚本提供正确的权限。

os.system

Python os系统函数允许我们在Python脚本中运行命令,就像我在我的shell中运行它一样。例如:

import os
currentFiles = os.system("users > users.txt")

当我运行这个脚本时,同一目录中生成了一个名为users.txt的新文件,内容为字符串’shubham’,因为这也是原始shell返回的: 请注意,这是一个非常强大的命令,应该谨慎使用。

os.error

Python os模块错误类是与I/O相关错误的基类。因此,我们可以使用except子句中的OSError捕获IO错误。

import os

try:
    f = open('abc.txt', 'r')  # file is missing
except OSError:
    print('Error')

os.getpid

此函数返回当前进程的ID或PID,因为它通常被称为。

>>> os.getpid()
71622

因此,当前shell进程的用户ID为71622。

os.listdir

此函数只列出当前工作目录中存在的文件和目录。

>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']

它返回一个可迭代的目录和文件名列表。

os.uname

此函数返回标识当前操作系统的信息,即在其上执行的操作系统。

>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='Shubham.local', release='17.2.0', version='Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64', machine='x86_64')

这实际上相当详细。

import os.path vs import os

os.path 实际上运作得有些奇怪。它看起来像是os打包了一个子模块path,但实际上,os是一个普通的模块,它通过与sys.module交互来支持os.path。让我们看看背后发生了什么:

  • 当 Python 启动时,它会加载许多模块到sys.module中。
  • os 模块也会在 Python 启动时加载。它将其path分配给os特定的模块属性。
  • 它注入了sys.modules['os.path'] = path,这样你就可以像导入子模块一样导入import os.path

总结

在本课程中,我们了解了 Python 中 OS 模块提供的各种函数,并看到它们是如何工作的。在这里可以查看更多关于 Python 的课程。参考资料:API 文档

Source:
https://www.digitalocean.com/community/tutorials/python-os-module