晚上好/早上好,
我已经在python程序中向终端传递了很多命令,并且想知道是否有传递命令并立即保存打印信息的方法,而不必先将其保存到文件然后读取该文件在?
例如,这就是我一直在做的事情:
os.system("lspci -tv > results")
if Addresses[i-1] in open('results').read():
有没有办法将lspci -tv的结果存储到我程序中的变量中,这样我的程序就不依赖于另一个文件了,每次我需要使用这个方法时,我的计算机都会乱用文件?
提前致谢。
答案 0 :(得分:0)
是的,你可以根据this question:
import subprocess
proc = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE)
output = proc.stdout.read()
print output
或者如果你想要一个包含结果的数组:
import subprocess
proc = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE)
output = proc.stdout.read()
array = output.split("\n")[:-1]
for i in range(len(array)):
print str(i) + " : " + array[i]
文档here。