无法将字符串转换为浮点数

时间:2019-04-23 07:41:03

标签: python-3.x

我需要从服务器获取GPU-Power。 这应该通过nvidia-smi完成。

  def getGpuPower(self):
      splitedGpuPower = os.popen("nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits").read().replace("\n", ",").split(",")
      for x in range(4):
        self.gpuPower += float(splitedGpuPower[x])
      return self.gpuPower

我需要一个浮点数,例如250,00

我实际上得到了

(  File "test1.py", line 22, in getGpuPower
    self.gpuPower += float(splitedGpuPower[x])
ValueError: could not convert string to float:)

输出看起来像这样

$ nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits

8.50
7.43
11.04

1 个答案:

答案 0 :(得分:2)

假设您的os.popen("nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits").read()的输出为8.50\n7.43\n11.04,则应该可以执行以下操作。

def getGpuPower():
      #Split on newline
      splitedGpuPower = "8.50\n7.43\n11.04".split("\n")
      gpuPower = 0
      #Iterate through the list
      for power in splitedGpuPower:
          #If string is non empty, convert to float and add
          if power.strip() != '':
              gpuPower += float(power)
      print(gpuPower)

输出将为

getGpuPower()
#26.97