我使用re.findall從一個特定的線路在返回文件中的浮動:Python的re.findall浮返回無法總結的返回值
mealReturnValue = re.findall("\d+\.\d+",lines[2])
示例文件行就會從:「總法案是400.00「
如下這將返回號碼清單:
[['400.00'], ['210.0'], ['400.00']]
我再試圖總結列表中,但是,它引發以下錯誤:
Traceback (most recent call last):
File "TotalSpend.py", line 25, in <module>
totalSpend = sum(mealReturn)
TypeError: unsupported operand type(s) for +: 'int' and 'list'
這似乎是re.findall的函數,如我已經能夠通過生成相同的數字的陣列手動完成。
例如:
i = [400.00, 210.0, 400.00]
print sum(i)
,所以我不知道真正的問題是什麼在這裏,我似乎無法在re.findall轉換爲浮動我可以在列表中使用。
任何幫助將不勝感激。
爲了更加清晰的整個代碼文件:
import os
import sys
import re
dirListing = os.listdir('C:\Users\joshnathan\Desktop\LPTHW')
mealReturn =[] # Array of returned meal values
numberOfMeals = 0
print "Which meal do you want to calculate?"
meal = raw_input(">>")
for item in dirListing:
if meal in item:
numberOfMeals += 1
fileName = open(item, 'r')
lines = fileName.readlines()
mealReturnValue = re.findall('\d+\.\d+',lines[2])
mealReturn.append(mealReturnValue)
print mealReturn
print numberOfMeals
totalSpend = sum(mealReturn)
print totalSpend
感謝 約書亞
*如下這將返回號碼列表* - 嗯...'re.findall'不會返回......你確定你沒有做別的事,你沒有向我們展示? (如每次追加到列表中) –
添加完整的代碼文件以供參考。感謝更新! – ImNewToThis