2012-12-02 40 views
0

這是我迄今爲止完成的程序的代碼。我試圖計算一個類項目的NBA球員的效率。當我在包含所有統計信息的逗號分隔文件上運行程序時,不是在每個逗號分割,而是創建統計文件整行的列表條目。我得到一個超出範圍錯誤的索引,或者將每個字符視爲索引點而不是單獨的字段。我對此很陌生,但它似乎應該爲文件中由該列表的元素分隔的每一行創建一個列表,以便列出列表。我希望我已經明白了。我不能分裂工作,我做錯了什麼?

下面是代碼:

def get_data_list (file_name): 
    data_file = open(file_name, "r") 
    data_list = [] 
    for line_str in data_file: 

     # strip end-of-line, split on commas, and append items to list 
     line_str.strip()  
     line_str.split(',') 

     print(line_str) 

     data_list.append(line_str) 
     print(data_list)     






file_name1 = input("File name: ") 
result_list = get_data_list (file_name1) 


print(result_list) 

我不知道如何發佈數據文件你看看,並與嘗試,但有逗號分隔應該工作數字的任何文件。

如果有方法可以發佈數據文件或電子郵件給你,以幫助我,我會很樂意這樣做。

Boliver

+0

通過我使用Python 3.3 –

+1

你可能想要的方式爲了研究使用csv模塊,它將爲您處理列拆分。 – monkut

回答

3

字符串是不可變的對象,這意味着你不能改變它們。這意味着,對字符串的任何操作都會返回一個新字符串。現在看看你的代碼:

stripped = line_str.strip() 
data = stripped.split(',') 
data_list.append(data) 

或者串聯的字符串操作:

line_str.strip()   # returns a string  
line_str.split(',')   # returns a list of strings 
data_list.append(line_str) # appends original 'line_str' (i.e. the entire line) 

您可以通過解決這個

data = line_str.strip().split(',') 
data_list.append(data) 
+0

我得到了拆分工作,現在我收到以下錯誤信息: –

+0

我沒有看到錯誤信息! –

+0

我現在得到一個列表索引超出範圍的錯誤消息。我已經驗證了列表中各個數據字段的索引7到23,這就是我的代碼所要求的。我會發布代碼進行計算,但它不會正確格式化,我無法發佈對我自己的問題的答案。 –

相關問題