我正在尝试运行一个遍历命令输出的每一行的for循环.例如:
for line in exec 'lspci | grep VGA':
count = count + 1
Run Code Online (Sandbox Code Playgroud)
尝试获取系统中安装的视频卡数量.但它似乎没有排列for循环线上的语法.
我是否必须为exec导入库?或者我使用它错了?或两者?
谢谢
exec执行Python代码,而不是外部命令.您正在寻找subprocess.Popen():
import subprocess
p = subprocess.Popen('lspci', stdout=subprocess.PIPE)
for line in p.stdout:
if 'VGA' in line:
print line.strip()
p.wait()
Run Code Online (Sandbox Code Playgroud)
在我的盒子上,打印出来
01:00.0 VGA compatible controller: nVidia Corporation GF104 [GeForce GTX 460] (rev a1)
Run Code Online (Sandbox Code Playgroud)
关键字exec执行Python代码.它不会启动新进程.
请尝试使用子进程模块.
lines = subprocess.check_output(["lspci"]).split('\n')
count = sum('VGA' in line for line in lines)
Run Code Online (Sandbox Code Playgroud)