To DoYou will write a script (or, scripts) that will take an optional argument, the directory to process. If not argument is supplied, use the current directory.In each subdirectory (including the top-level directory on which the script was called) you will place a file called dir.xml . If it already exists, simply overwrite it. Do not include it as one of the files listed.The root element will be direntry. It may contain up to 3 child nodes: index, required, and other. index will only contain a file. The remaining two might contain text elements:Regular file (or, symlink)DirectoryA named pipeA socketIndex and required data will be harvested from README. Other files will be found by taking a listing of the directory, looking for files or directories that weren’t listed in README.For example, the following file would be placed in CS265/Labs/2 :dir.xmlThoughtsIt is preferrable to hand in a working program that addresses part of the problem than a mess that attempts the entire problem. Use small functions Implement 1 task at a time Test it, separately. Should be easy to do with functions When working, gather your small functions together to complete the larger task No function should be very long Keep your code neat, legible, logical Overall appeal of your source code will be part of the grade. Style matters Appropriate comments, including the file header(s) You might want to consider os.walk, for flipping through directories. See os_walk.py . Some other useful functions, maybe: os.path.join os.path.abspath os.stat . See stat.pyFolks, please don’t spend a lot of time writing me 18 different classes. My solution contains no user-defined classes, though there is 1 fairly obvious candidate, if you have that itch.SubmissionDo not submit temporary files, nor your test data. Just the required scripts, and any helper files.What to hand in dropXml.py — your Python3 script Any other files needed README (optional) — anything you want to tell us before we grade.