2017-10-19 208 views
1

我正在寫一個簡短的腳本,用於獲取有關主機的一些信息並將其寫入Excel工作簿。我還在學習東西,所以沒什麼特別。 我得到了我需要的所有數據,並且可以寫入大部分內容。 雖然我似乎無法得到一件事。 當嘗試下面的代碼:Python不支持的操作數類型爲+:'float'和'str

hardwareSheet.write("B7", usage + "%") 

我可以打印出「用法」變量,但只有當我添加+「%」我不斷收到以下錯誤:

TypeError: unsupported operand type(s) for +: 'float' and 'str' 

我使用xlsxwriter庫來創建和編寫excel。 hardwareSheet.write是一個命令,允許我將數據寫入名爲硬件的工作表中。 這裏就是我得到了「使用」變量:

cpuInfo = wmi.Win32_Processor()[0] 
usage = float(cpuInfo.LoadPercentage) 

如果我不解析cpuInfo.LoadPercentage爲float這將是一個字符串。 我GOOGLE了這一點,並認爲我需要解析str到一個浮動,所以我這樣做。任何想法可能是錯誤的?

+0

您不能將一個字符串添加到浮動。你的程序是否需要對'usage'進行算術運算?如果沒有,請不要將它轉換爲浮動狀態。 –

+0

爲了什麼目的,需要將'usage'解析爲浮點數? – roganjosh

+0

@PM 2Ring - 是的,我對它做了一些算術運算,但在一個單獨的函數中,所以我不必在全局變量中解析它。我現在明白了。乾杯。 – davidb

回答

5

你不能在python中添加浮動和字符串。 usage是一個浮點數。 "%"是一個字符串。

,你應該這樣做:

str(usage) + '%' 
+0

好吧,我剛剛檢查,我錯了。 「用法」是一個整數。所以我需要把它改成一個字符串,對嗎? – davidb

+1

好吧,現在就明白了。這是我的問題,改變它後,它的工作。謝謝。 – davidb

0

這是一種既可以得到相同的輸出。

'{0}%'.format(usage) 
相關問題