我有一个读取温度数据的脚本:
def get_temp(socket, channels):
data = {}
for ch in channels:
socket.sendall('KRDG? %s\n' % ch)
time.sleep(0.2)
temp = socket.recv(32).rstrip('\r\n')
data[ch] = float(temp)
Run Code Online (Sandbox Code Playgroud)
有时,脚本会在将值转换为float的行上失败:
文件"./projector.py",第129行,在get_temp
数据中[ch] = float(temp)
ValueError:float()的文字无效:+ 135.057E + 0
+ 078.260E + 0
+00029
但这不是一个无效的文字.如果我把它输入任何python shell,
float(+135.057E+0)
Run Code Online (Sandbox Code Playgroud)
然后它正确返回135.057.
那么问题是什么?
我想在Python中做的是接受以下格式的参数:
script.py START | STOP | STATUS | MOVEABS <x> <y> | MOVEREL <x> <y>
Run Code Online (Sandbox Code Playgroud)
换句话说,
这可以在python中完成,我会使用argparse还是别的?谢谢.