【发布时间】:2021-08-16 20:35:29
【问题描述】:
所以我一直在搞乱我的 MacOS,试图从 Python 文件中运行终端命令。以下是我到目前为止一直在使用的代码:
#!/usr/bin/env python3
import os
import subprocess
print("IP Configuration for Machine")
cmd = ['ifconfig']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
o, e = proc.communicate()
print('OUTPUT: ' + o.decode('ascii'))
print('ERROR: ' + e.decode('ascii'))
print('CODE: ' + str(proc.returncode))
当我打算只运行一个终端命令时,它工作得非常好。现在我打算运行多个一个,但到目前为止它一直给我错误。我尝试的一个例子:
print("IP Configuration for Machine & List Directory")
cmd = ['ifconfig', 'ls']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
我想知道有没有办法解决我的困境
【问题讨论】:
-
Popen采用命令的名称及其参数,而不是两个单独的命令按顺序运行。您需要使用subprocess.Popen两次,cmd的每个元素一次。
标签: python linux macos terminal