Différence entre `open` et` io.BytesIO` dans les flux binaires

Je suis en train d'apprendre sur le travail avec les flux en Python et j'ai remarqué que le IO docs dire suivantes:

La façon la plus simple pour créer un flux binaire est avec open() avec " b " dans la chaîne de mode:

f = open("myfile.jpg", "rb")

En mémoire les flux binaires sont également disponibles comme BytesIO objets:

f = io.BytesIO(b"some initial binary data: \x00\x01")

Quelle est la différence entre f tel que défini par open et f tel que défini par BytesIO. En d'autres termes, ce qui fait une "en mémoire Dans le flux binaire" et comment est-ce différent de ce que open?

source d'informationauteur Luke Whyte