On Thu, Apr 19, 2018 at 10:45:07AM +0200, Niharika Jakhar wrote: > Hi > I want to store a file from BioGRID database (tab separated file, big data) > into a data structure(I prefer lists, please let me know if another would > be better) and I am trying to print the objects.
You should probably look at using the csv module. It can handle tab-separated files too. https://docs.python.org/3/library/csv.html https://docs.python.org/2/library/csv.html > Here’s my code: > class BioGRIDReader: > def __init__(self, filename): > with open('filename', 'r') as file_: > read_data = f.read() > for i in file_ : > read_data = (i.split('\t')) > return (objects[:100]) > > a = BioGRIDReader > print (a.__init__(test_biogrid.txt)) You have two errors here. Firstly, you should not call a.__init__ directly. You never call methods with two leading and trailing underscores directly: always let Python call them for you. Instead, you call: a = BioGRIDReader(filename) Your second error is the file name. You write: test_biogrid.txt but to Python, that looks like a variable called test_biogrid, which does not exist. That is why you get the error: > Here's what the terminal says: > Traceback (most recent call last): > File "./BioGRIDReader.py", line 23, in <module> > print (a.__init__(test_biogrid.txt)) > NameError: name 'test_biogrid' is not defined The solution is to quote the name of the file, so Python treats it as a string: a = BioGRIDReader("test_biogrid.txt") By the way, THANK YOU for quoting the whole error message! That is much better than people who just say "it doesn't work" and leave us to guess what happens. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor