यदि आप खाली पंक्ति पढ़ते हैं तो आपको खाली सूची 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'
संपादित करें: आप सीएसवी मॉड्यूल का उपयोग करने का बेहतर कर रहे हैं:
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