【发布时间】:2015-02-17 08:00:54
【问题描述】:
我正在做一个小练习。
有一个包含 3 列的文本文件:EmployeeID、First Name 和 姓。编写一个程序来创建字典,其
keys()是 文本文件中的 EmployeeID 和values()是第一个也是最后一个 名字组合在一起。
我先尝试不循环。
f = open('empID.txt','r')
line1 = f.readline().split()
line2 = f.readline().split()
line3 = f.readline().split()
print line1
print line2
print line3
empdict={}
empdict[line1[0]] = line1[1]+" "+line1[2]
empdict[line2[0]] = line2[1]+" "+line2[2]
empdict[line3[0]] = line3[1]+" "+line3[2]
print "The resulting dictionary is \n",empdict
f.close()
这很好用。然后我尝试了循环。
f = open('empID.txt','r')
empdict = {}
for line in f:
line = f.readline().split()
print line
empdict[line[0]] = line[1]+" "+line[2]
print "The resulting dictionary is \n",empdict
f.close()
这引发了错误:
Traceback (most recent call last):
File "empID3.py", line 4, in <module>
line = f.readline().split()
ValueError: Mixing iteration and read methods would lose data
有人advised 在类似情况下使用while 循环代替,所以我尝试了:
代替for line in f:,我添加了while True:,这一次它打印了所有line输出,然后抛出另一个错误而不是输出dictionary。
Traceback (most recent call last):
File "empID3.py", line 6, in <module>
empdict[line[0]]=line[1]+" "+line[2]
IndexError: list index out of range
有人可以帮我解决这个问题吗?我哪里错了?
【问题讨论】:
标签: python python-2.7 for-loop file-io while-loop