hasattrgetattrsetattrand delattrwhich allow attributes on an zipwhich takes two or more sequences and returns new sequence of and many moresee the interpreter help documentation for each of the functions listed in dir(__builtins__object to be manipulated by their string names tupleswhere each tuple contains single value from each sequence file / our examples so far that touch the filesystem have operated entirely on text files without much thought to what is going on under the hood operating systemshoweveractually represent files as sequence of bytesnot text we'll do deep dive into the relationship between bytes and text in strings and serialization for nowbe aware that reading textual data from file is fairly involved process pythonespecially python takes care of most of this work for us behind the scenes aren' we luckythe concept of files has been around since long before anyone coined the term object-oriented programming howeverpython has wrapped the interface that operating systems provide in sweet abstraction that allows us to work with file (or file-likevis- -vis duck typingobjects the open(built-in function is used to open file and return file object for reading text from filewe only need to pass the name of the file into the function the file will be opened for readingand the bytes will be converted to text using the platform default encoding of coursewe don' always want to read filesoften we want to write data to themto open file for writingwe need to pass mode argument as the second positional argumentwith value of " "contents "some file contentsfile open("filename"" "file write(contentsfile close(we could also supply the value "aas mode argumentto append to the end of the filerather than completely overwriting existing file contents these files with built-in wrappers for converting bytes to text are greatbut it' be awfully inconvenient if the file we wanted to open was an imageexecutableor other binary filewouldn' it