小编ast*_*ave的帖子

python ValueError:float()的文字无效

我有一个读取温度数据的脚本:

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 literals

21
推荐指数
1
解决办法
10万
查看次数

可选的python参数没有破折号但有附加参数?

我想在Python中做的是接受以下格式的参数:

script.py START | STOP | STATUS | MOVEABS <x> <y> | MOVEREL <x> <y>
Run Code Online (Sandbox Code Playgroud)

换句话说,

  1. 我不想处理连字符;
  2. 我有多种可能性,其中一种是必需的;
  3. 每个都是互相排斥的;
  4. 一些命令(EG moveabs和moverel)具有额外的必需参数,但这些参数不应与任何其他参数一起出现.

这可以在python中完成,我会使用argparse还是别的?谢谢.

python argparse

6
推荐指数
2
解决办法
2110
查看次数

标签 统计

python ×2

argparse ×1

literals ×1