We've actually seen file-like objects in action already; the objects returned to us when we open files in text and binary mode are actually of different types, although both with definite file-like behavior. There are other types in the Python standard library which implement file-like behavior, and in fact we saw one of them in action back at the beginning of the book, when we used urlopen() to retrieve data from a URL on the Internet.