gpt4 book ai didi

python - subprocess.check_output 逻辑错误

转载 作者:行者123 更新时间:2023-11-28 22:39:55 25 4
gpt4 key购买 nike

我正在使用 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 值后没有停止。

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

提前致谢

最佳答案

您没有为 Measure Start Timefind 提供偏移量。将第二个 find 更改为:

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

end 的搜索将从您确定的 start 开始,而不是字符串的开头(它总是找到相同的 end ).

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com