我是python的新手,所以請在開始過於嚴格之前考慮這一點。錯誤:當我嘗試從csv文件拆分一行時,'list'對象沒有屬性'split'
我有類似條目的CSV文件: -
for 30 days
for thirty working days
for 20 weeks
for 2 months
我想用一個空格每一行拆分爲分隔符: -
(for) (30) (days)
(for) (thirty) (working) (days)
現在我想通過每個單詞word2number所以我的'thirty'
將被給予'30'
現在的第一行作爲'30'
已經是一個數字我想乘以1作爲我t說幾天。如果之後是'n weeks'
則'n*7'
。多年來一直爲'*30'
,'*365'
多年。
乘法的結果應在該行的相應單元格中輸出。
現在我的代碼是
import csv
from word2number import w2n
with open("test_term.csv", "rb") as file1:
reader = csv.reader(file1)
extractedlist = list(reader)
#print extracted
def split_line(text):
# split the text
words = text.split('')
# for each word in the line:
for word in words:
# print the word
print(word)
for extracted in extractedlist:
worn = split_line(extracted)
即時得到錯誤'AttributeError: 'list' object has no attribute 'split''
。
我需要將拆分的單詞傳遞給'w2n.word_to_num(word)'
,這會將單詞轉換爲數字。如果它沒有給出輸出就跳到下一個單詞。
謝謝,你能告訴我如何檢查拆分的單詞是「天還是月還是年」? – safwan
你是什麼意思檢查分詞?你總是可以在str:doSomething()中使用if語句,如果「month」。 –
csv.reader不會返回二維列表,因爲它會消耗太多讀取大型CSV文件的RAM。它返回一個生成器:https://docs.python.org/2/library/csv.html – Fomalhaut