: am , , part : am , , part : am , , part : am , , part : am , , part : am , , part : am , , part : am , part file( , , bytes dir( , , , bytes free each of these generated part files represents one binary chunk of the file python- msi-- chunk small enough to fit comfortably on floppy disk of the time in factif you add the sizes of the generated part files given by the ls commandyou'll come up with exactly the same number of bytes as the original file' size before we see how to put these files back together againhere are few points to ponder as you study this script' codeoperation modes this script is designed to input its parameters in either interactive or commandline modeit checks the number of command-line arguments to find out the mode in which it is being used in command-line modeyou list the file to be split and the output directory on the command lineand you can optionally override the default part file size with third command-line argument in interactive modethe script asks for filename and output directory at the console window with input and pauses for key press at the end before exiting this mode is nice when the program file is started by clicking on its iconon windowsparameters are typed into pop-up dos box that doesn' automatically disappear the script also shows the absolute paths of its parameters (by running them through os path abspathbecause they may not be obvious in interactive mode binary file mode this code is careful to open both input and output files in binary mode (rbwb)because it needs to portably handle things like executables and audio filesnot just text in we learned that on windowstext-mode files automatically map \ \ end-of-line sequences to \ on input and map \ to \ \ on output for true binary datawe really don' want any \ characters in the data to go away when readand we don' want any superfluous \ characters to be added on output binary-mode files suppress this \ mapping when the script is run on windows and so avoid data corruption in python xbinary mode also means that file data is bytes objects in our scriptnot encoded str textthough we don' need to do anything special--this script' file processing code runs the same on python as it did on in factbinary mode is required in for this programbecause the target file' data may not be encoded text at alltext mode requires that file content must be decodable in xand that might fail both for truly binary data and text files obtained from other splitting and joining files