Python怎么调用系统命令
在Python中,调用系统命令可以通过使用os
模块或subprocess
模块来实现。这些模块提供了一些函数和方法,可以直接在Python脚本中执行系统命令。
1. 使用os模块调用系统命令
os模块提供了一些用于执行系统命令的函数,例如os.system()
、os.popen()
和os.exec*
系列函数。
其中,os.system()
函数是最简单的一种方式,它可以直接执行一个系统命令,并返回执行结果。
import os
# 调用系统命令
os.system('ls')
# 执行结果为0,表示执行成功
在上面的代码中,我们调用了os.system()
函数,并运行了ls
命令。执行结果为0,表示命令执行成功。
如果需要获取命令的输出结果,可以使用os.popen()
函数。它会将命令的输出作为一个文件对象返回,可以通过读取文件对象来获取输出结果。
import os
# 调用系统命令并获取输出结果
result = os.popen('ls').read()
print(result)
上面的代码中,我们调用os.popen()
函数并执行ls
命令。然后使用read()
方法读取命令的输出结果,并将结果打印出来。
此外,os.exec*
系列函数也可以用于调用系统命令,但它们会替换当前进程,即在执行命令后,原来的Python脚本将会被终止。
2. 使用subprocess模块调用系统命令
subprocess模块提供了更为灵活和高级的方法来调用系统命令。它可以创建新的进程来执行命令,并提供了更多的选项和功能。
subprocess模块中最常用的函数是subprocess.run()
和subprocess.Popen()
。
使用subprocess.run()
函数可以直接执行系统命令,并且可以指定一些选项来控制命令执行的方式。
import subprocess
# 直接执行系统命令
result = subprocess.run(['ls', '-al'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True)
# 执行结果保存在result中
output = result.stdout
print(output)
在上面的代码中,我们调用了subprocess.run()
函数,执行了ls -al
命令,并且指定了一些选项。我们将命令的输出结果保存在result
变量中,并通过stdout
属性获取输出结果,并打印出来。
此外,subprocess.Popen()
函数也是一种常见的调用系统命令的方式。它提供了更为灵活的选项,可以控制命令的输入和输出。
import subprocess
# 创建一个Popen对象
process = subprocess.Popen(['ls', '-al'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
# 获取命令输出并打印
output, error = process.communicate()
print(output)
上面的代码中,我们使用subprocess.Popen()
函数创建了一个Popen
对象,并执行了ls -al
命令。然后通过communicate()
方法获取命令的输出结果,并打印出来。
总结
Python可以通过os
模块或subprocess
模块来调用系统命令。其中,os.system()
和os.popen()
函数是os模块中最常用的调用命令的方式;subprocess.run()
和subprocess.Popen()
函数是subprocess模块中更为灵活和高级的方法。
通过这些函数和方法,我们可以在Python脚本中方便地执行系统命令,并获取命令的输出结果。这使得Python成为了一种非常强大的脚本语言,可以实现与系统交互的功能。