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