i have "asin.txt" document: in,huawei1,de out,huawei2,uk out,huawei3,none in,huawei4,fr in,huawei5,none in,huawei6,none out,huawei7,it i'm opening file , make ordereddict : from collections import ordereddict reader = csv.reader(open('asin.txt','r'),delimiter=',') reader1 = csv.reader(open('asin.txt','r'),delimiter=',') d = ordereddict((row[0], row[1].strip()) row in reader) d1 = ordereddict((row[1], row[2].strip()) row in reader1) then want create variables (a,b,c,d) if take first line of asin.txt should like: a = in ; b = huawei1 ; c = huawei1 ; d = de . i'm using "for" loop: from itertools import izip (a, b), (c, d) in izip(d.items(), d1.items()): # here try: ....... it worked before, now, reason, prints error: d = ordereddict((row[0], row[1].strip()) row in reader) indexerror: list index out of range how fix that? probably have row in textfile not have @ least 2 f...