Cecil Westerhof wrote: >> (2) you may want to take measures to limit memory usage, e. g. >> >> assert index >= 0 > > I put that in, but as first statement.
For the record, this was not a recommended check, but rather a way to communicate to the reader of my code that unlike yours it doesn't support negative indices. >> try: >> [line] = itertools.islice(f, index, index+1) >> except ValueError: >> raise IndexError >> return line.rstrip() > > In my case it is not important. (The biggest file I use has between > 100 and 200 lines), but I publish it, so I should do my best to make > it so lean as possible. If you keep your return f.readlines()[index] anyway you might allow for negative indices, and then get_indexed_message(message_filename, -1) fetches the last message in the file and get_indexed_message(message_filename, slice(None, None)) fetches a list with all messages. -- https://mail.python.org/mailman/listinfo/python-list