📜  python 运行命令并读取输出 - Python (1)

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

Python 运行命令并读取输出

在Python中,我们可以使用subprocess模块来运行系统命令,并读取其输出。这在很多情况下非常有用,例如当我们需要执行某些命令并从其输出中提取信息时。下面是一个简单的例子:

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8'))

在上面的代码中,我们使用subprocess.run方法来运行ls -l命令,并将其输出通过stdout参数传递给result变量。然后,我们使用decode方法将输出从字节串转换为字符串,并在控制台打印它。

如果你需要更多的控制,你可以使用Popen类,它允许你更加灵活地控制进程的输入、输出和状态。下面是一个使用Popen的例子:

import subprocess

process = subprocess.Popen(['ping', '-c', '1', 'google.com'], stdout=subprocess.PIPE)

while True:
    output = process.stdout.readline().decode('utf-8')
    if output == '' and process.poll() is not None:
        break
    if output:
        print(output.strip())

print('Exit code:', process.poll())

在上面的代码中,我们使用Popen方法来运行ping -c 1 google.com命令,并将其输出通过stdout参数传递给process变量。接着,我们使用一个while循环来读取进程的输出。readline方法从输出中读取一行,并通过decode方法将其从字节串转换为字符串。如果输出为空,且进程已经退出,则跳出循环。最后,我们使用poll方法来获取进程的退出状态,并在控制台打印它。

总之,subprocess模块提供了一个方便的方法来运行系统命令,并读取其输出。如果你需要更灵活的控制,你可以使用Popen类。