Data=[]
如果您读取空行,则会得到一个空列表。您尝试使用 获取列表中的第一个元素Data[0]
,但因为它是一个空列表,它在位置 0 处没有元素,所以您得到一个IndexError
.
Data=''.split()
Data[0]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-686-0792b03cbbdf> in <module>()
----> 1 Data[0]
IndexError: list index out of range
这将打印出Data
ifIndexError
事件 - 你可以看到它打印了一个空列表:
f=open('file','r')
temp = []
for row in f.readlines():
Data = row.split()
try:
temp.append(float(Data[0]))
except IndexError:
print Data
您可以使用with
语句打开文件,在处理完文件后自动关闭文件。您也可以遍历文件本身,而不使用readlines()
.
with open(file,'r') as f:
for row in f:
Data = row.split()
try:
print Data[0]
except IndexError:
print 'You have an empty row'
编辑:你最好使用 csv 模块:
import csv
with open('file.csv', 'rb') as f:
reader = csv.reader(f, delimiter=' ')
print [row[0] for row in reader if len(row)]
>>>
['16', '17', '18', '20', '21', '22', '24', '25', '26']