Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在for循环中获取错误_Python - Fatal编程技术网

Python:在for循环中获取错误

Python:在for循环中获取错误,python,Python,我正在尝试使用python控制一个工具。在代码执行过程中,我需要一次又一次地重新发出相同的命令,以便从仪器中读取数据。当我使用命令一次时,我得到了答案,但我将其放入for循环中,我得到了带有消息“ERR”的数据。我不知道如何解决这个问题,有人能帮我吗?下面是我的代码及其输出: import visa rm = visa.ResourceManager() print(rm.list_resources()) my_instrument = rm.open_resource('TCPIP0::1

我正在尝试使用python控制一个工具。在代码执行过程中,我需要一次又一次地重新发出相同的命令,以便从仪器中读取数据。当我使用命令一次时,我得到了答案,但我将其放入for循环中,我得到了带有消息“ERR”的数据。我不知道如何解决这个问题,有人能帮我吗?下面是我的代码及其输出:

import visa

rm = visa.ResourceManager()
print(rm.list_resources())
my_instrument = rm.open_resource('TCPIP0::169.254.164.61::3602::SOCKET', read_termination='\r\n')
for i in range(0, 10):
    my_instrument.ask('RMMEAS\r')
    ry3 = my_instrument.read()
    print(ry3)
输出

C:\ProgramData\Anaconda3\python.exe C:/Users/nishant.mittal/PycharmProjects/demo.py/kjbkn.py
('TCPIP0::192.168.001.020::3602::INSTR', 'ASRL3::INSTR', 'ASRL4::INSTR', 'ASRL10::INSTR')
8,0.022,0.027,0.029,0.042,0.056,

ERR 
8,0.022,0.027,0.029,0.042,0.056,

ERR 
8,0.022,0.027,0.029,0.042,0.056,

ERR 
8,0.022,0.027,0.029,0.042,0.056,

Process finished with exit code 0

我从来没有试过这样的东西,但我猜是因为它打印出来了

Process finished with exit code 0
我假设它可以工作,因为退出代码0意味着它编译正确(根据C和C++),而不是您想要的方式。我还认为这是正确的,因为它不会打印出
回溯
错误

这是Python中的一个错误:

>>> while True print('Hello world')
File "<stdin>", line 1
    while True print('Hello world')
                   ^
SyntaxError: invalid syntax
>>而真正打印时(“Hello world”)
文件“”,第1行
而True print(‘Hello world’)
^
SyntaxError:无效语法
我真的不知道该怎么帮你,除了这个。。。对不起…:(


我希望我能帮上忙!

请你说得更清楚一点,努力理解你的意思。当我发出不带循环的RMEAS命令时,没有错误。但是当我将此命令放入for-loop时,我会收到错误消息以及我的数据。你正在使用哪个版本的pyvisa。阅读文档时,你会看到一条评论uld使用my_instrument.query(“*IDN?”)而不是my_instrument。询问您是否从低于1.5的版本迁移。。。。你可能投票太快了。通过调用last_status并检查returnedAlso来检查仪器的状态。因此,旧的ask方法看起来是先写后读,所以您可能不需要执行.read来获得结果(请参阅)。大家好,我可以通过做一个非常简单的更改来解决问题:my_instrument.ask('RMMEAS\r')到my_instrument.ask('RMMEAS')。现在的下一个问题是如何将多个命令一起发送到仪器并接收数据。