Bill Janssen wrote: > Good point. Though I just grepped all my Python sources, and I never > do that, so presumably the obvious workaround of
I'm using seek(0, 2) + tell() sometimes when I need to know the file size and don't want to worry about buffers. pos = fd.tell() size = None try: fd.seek(0, 2) size = fd.tell() finally: fd.seek(pos) IMO you made a good point. The seek() arguments are really too UNIX centric and hard to understand for newbies. The os module contains three aliases for seek (SEEK_CUR, SEEK_END, SEEK_SET) (why is it called SET and not START?) but they are rarely used. What do you think about adding two additional functions which act as alias from whence = 1 and whence = 2? def seek(self, pos: int, whence: int = 0) -> int: """Change stream position. Seek to byte offset pos relative to position indicated by whence: 0 Start of stream (the default). pos should be >= 0; 1 Current position - whence may be negative; 2 End of stream - whence usually negative. Returns the new absolute position. """ def seekcur(self, pos: int) -> int: """seek relative to current position alternative names: seekrel, seek_relative """ return self.seek(pos, 1) def seekend(self, pos: int) -> int: """seek from end of stream alternative names: seekeof """ return self.seek(pos, 2) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com