我需要从服务器获取 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 这样的 float
我真的明白了
( 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
最佳答案
假设 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
关于python - 无法将字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55806434/