📜  python中的系统调用(1)

📅  最后修改于: 2023-12-03 15:04:37.078000             🧑  作者: Mango

Python中的系统调用

系统调用是操作系统提供的一组接口或函数,程序员可以使用这些接口或函数调用操作系统的各种服务和功能,从而完成自己的任务。在Python中,我们可以通过标准库的os模块和subprocess模块实现系统调用。

os模块

os模块提供了一个跨平台的接口,用于操作文件、目录、进程等系统资源。下面是一些常用的os模块函数:

1.获取文件信息

os.path模块提供了一些方便的函数用于获取文件信息,例如文件大小、创建时间等等。

import os

# 获取文件大小
print(os.path.getsize('/path/to/file'))

# 获取文件创建时间
print(os.path.getctime('/path/to/file'))

# 获取文件修改时间
print(os.path.getmtime('/path/to/file'))
2.目录操作
# 创建目录
os.mkdir('/path/to/dir')

# 删除目录
os.rmdir('/path/to/dir')

# 判断文件/目录是否存在
os.path.exists('/path/to/file')
os.path.isdir('/path/to/dir')
os.path.isfile('/path/to/file')
3.进程操作
# 执行shell命令
os.system('ls -l /path/to/dir')

# 获取当前进程ID
os.getpid()

# 获取父进程ID
os.getppid()

# 检查进程是否存在
os.kill(pid, 0)
subprocess模块

subprocess模块提供了更高级别的接口,可以用于更方便地与外部程序交互。下面是一些常用的subprocess模块函数:

import subprocess

# 执行命令并获取输出
# 注意:命令的返回值和输出不能同时获取,因为它们是互斥的
result = subprocess.call('ls -l /path/to/dir', shell=True)
output = subprocess.check_output('ls -l /path/to/dir', shell=True)

# 执行命令并获取输出,同时捕获标准输出和标准错误输出
p = subprocess.Popen('ls -l /path/to/dir', shell=True,
                     stdin=subprocess.PIPE,
                     stdout=subprocess.PIPE,
                     stderr=subprocess.PIPE)
output, err = p.communicate()
print('Output:', output)
print('Error:', err)

以上是Python中常用的系统调用函数,通过这些函数,我们可以在Python中愉快地调用各种操作系统的功能,让我们的程序更加丰富多彩。