2017-01-08 50 views
0

在python中很新穎,我正在努力尋找某些東西。我從CSV文件中分出一堆數據點,其中一點是日期(mm/dd/yyyy)。我將這個日期分成了每個「/」,以便將各個部分分成不同的列表。那是我遇到麻煩的地方。當我嘗試打印超出零的列表的每個索引時,我的代碼結束時,我得到這些錯誤。最終,我想對這三個單獨的日期對象做的事情是將它們作爲子列表添加到我現有的ptInfo列表(ptInfo [8],ptInfo [9],ptInfo [10])的末尾。我該怎麼做?將新列表索引分配到現有列表

Runtime誤差(IndexOutOfRangeException):索引超出範圍:1 Traceback: 線51,在腳本

Runtime誤差(IndexOutOfRangeException):索引超出範圍:2 Traceback: 線52在腳本

#import Points from CSV 

import rhinoscriptsyntax as rs 
import sys 
import datetime 

input_file = 'C:\Users\kenma\Dropbox (Personal)\Solo Work\Projects\Sweet Crude\Work\data\prepared_uic_data.csv' 

#Init Lists 
a = [] 
apis = []   #0 
operators = []  #1 
operatorNums = [] #2 
wellTypes = []  #3 
dates = []   #4 
lats= []   #5 
longs = []   #6 
zoneAreas = []  #7 
dateFrag = [] 
dateM = []   #8 
dateD = []   #9 
dateY = []   #10 

file = open(input_file, 'r') #open file for reading 
lines = file.readlines()  #read lines into variable 
file.close()     #close the file 
del lines[0]     #delete first header line 

for line in lines: 
    #remove the /n 
    line = line.strip() 

    # split line by the column 
    ptInfo = line.split(',') 
    a = ptInfo 

    # split line data into individual arrays 
    apis.append(ptInfo[0]) 
    operators.append(ptInfo[1]) 
    operatorNums.append(ptInfo[2]) 
    wellTypes.append(ptInfo[3]) 
    dates.append(ptInfo[4]) 
    lats.append(ptInfo[5]) 
    longs.append(ptInfo[6]) 
    zoneAreas.append(ptInfo[7]) 

    dateFrag = ptInfo[4].split("/") 
    print(dateFrag[0]) 
    print(dateFrag[1]) 
    print(dateFrag[2]) 
+0

嗯,顯然ptInfo [4]實際上沒有任何斜槓在裏面。也許你應該打印出來,而不是試圖打印不存在的分割結果。 – jasonharper

+0

不,它確實。我打印出來了,這就是爲什麼我要用斜線分割。下面是從ptInfo [4]打印出:2002年11月27日2000年11月13日 1988年8月19日 二○○三年十二月一十五日 1985年7月11日2002年11月27日 27分之11/ 2002年 1996年9月17日 05/06/2010 1990年6月25日 1999年7月14日 1998年5月27日 2006年3月13日 03/08/2006 1994年5月23日 – greyBow

+0

你不明白爲什麼你要把日期分成幾部分。由於日期是一件事情,所以通常更好地對待它。你爲什麼把日期分成幾部分。 –

回答

1

我怎麼再加入這三個列表中的元素,以我的ptInfo列表?

>>> pt_info = ['a', 'b', 'c'] 
>>> d = '01/02/03' 
>>> d.split('/') 
['01', '02', '03'] 
>>> pt_info.extend(d.split('/')) 
>>> pt_info 
['a', 'b', 'c', '01', '02', '03'] 
>>> 
+0

謝謝!這就是我所需要的。 – greyBow