python - subprocess.check_output逻辑错误

标签 python python-2.7 subprocess

我正在使用 subprocess.check_output 运行 Xyce(SPICE 模拟器)模拟,因为我想使用其结果进行进一步分析。

这是我正在使用的代码:

x=subprocess.check_output(['./Xyce','Circuit.cir'])
volt=[]
for i in range(1,4): 
    start=x.find('FINAL_COL{}_VOLT = ' .format(i)) + 18

    end=x.find('Measure Start Time')

    volt.append(x[start:end])
print colored ('volt=','cyan')  

这是我获得的 Xyce 模拟日志:

FINAL_COL1_VOLT = 0.0145203
Measure Start Time= 0   Measure End Time= 1
FINAL_COL2_VOLT = 0.0176678
Measure Start Time= 0   Measure End Time= 1
FINAL_COL3_VOLT = 0.0811186
Measure Start Time= 0   Measure End Time= 1

我得到了结果 volt=[' 0.0145203\n','',''] 并且我期望得到 volt=[' 0.0145203\n',' 0.0176678\n','0.0811186\n']。我做了一些调试,发现问题出在我的 end 上,因为在每个结果之后都会重复 'Measure Start Time' 。因此,当我尝试将结尾更改为另一个字符串时,代码执行了,但当然没有给我所需的输出,因为在获得 VOLT 值后我没有停止。

所以,关于如何解决这个问题的想法。

提前致谢

最佳答案

您没有为测量开始时间查找提供偏移量。将第二个 find 更改为:

end=x.find('Measure Start Time', start)

并且搜索 end 将从您标识的 start 开始,而不是从字符串的开头开始(它总是找到相同的 end )。

关于python - subprocess.check_output逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34234392/

相关文章:

python - 使用 python 聚类后的有序彩色图

python - 子进程.Popen : Separating stdout/stderr but keeping order

python - 以附加模式将子进程输出转储到文件中

python - 如何在 Django 测试设置中创建包含用户的记录

运行 T 测试时的 Python 运行时错误

python - 动态压缩字符串并附加到文件

python - 使用 Python GUI 实时捕获外部 C 程序的输出

python - 导入错误 : no module named py2exe

python - 名称错误 : name 'result' is not defined

python-2.7 - python中的K最近邻