2017-08-09 23 views
-1

我认为这将只是更容易发布我的代码的一个稍微修改后的版本(修改为隐私的原因)。基本上我是根据csv文件中给出的信息创建一个目录结构。代码首先将csv转换为2d列表。然后脚本通过csv搜索查找相关信息,并逐行创建一个目录路径。目录路径将被检查以查看它是否已经存在,如果不存在,则应该创建它。唯一的问题是,我用于pi和poc的循环给我一个错误“IndexError:列表分配索引超出范围”,我不知道为什么。Python:不知道为什么我得到“IndexError:列表分配索引超出范围”错误

#We need to find what column in the 2D list these fields are listed in the header 
    x,y = index_containing_substring(data,"PiID") 
    pi = [] 
    if x != None and y != None: 
     for i in range(len(data)): 
      pi[i] = data[i][y] 
     #removes header row 
     pi.pop(0) 
    else: 
     pi = None 
     print(' ') 
     print("No value for PI") 


    x,y = index_containing_substring(data,"RequesterID") 
    poc = [] 
    if x != None and y != None: 
     for i in range(len(data)): 
      poc[i] = data[i][y] 
     #removes header row 
     poc.pop(0) 
    else: 
     poc = None 
     print(' ') 
     print("No value for point of contact") 
+0

能否请您提供完整的追溯错误和你可能试图做的事情,以便使它成为ea sier帮我们帮忙 –

+0

你能发布完整的错误信息吗? –

+0

如果只是将条目连接到空列表,则使用'pi.append(data [i] [y])'和'poc.append(data [i] [y])'。 – Igle

回答

2

例如,在这里:

pi = [] 
if x != None and y != None: 
    for i in range(len(data)): 
     pi[i] = data[i][y] 

您不能分配到的pi不存在的元素。解决这个问题

一种方式是通过使用list.append()代替:

pi = [] 
if x != None and y != None: 
    for i in range(len(data)): 
     pi.append(data[i][y]) 

同样的模式出现在你的代码中的其他一些地方。

相关问题