如果您讀取空行,您將得到一個空列表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
如果IndexError
occours - 你可以看到自己,它打印一個空列表:
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']
['csv'](http://docs.python.org/library/csv.html)是你的朋友。 –
...不應該爲f.readlines()中的行:'或者更簡單地'爲f中的行嗎? – nneonneo