Due Monday, July 9, at the start of class.
Print detailed information about a directory, its subdirectories, and its files, recursively. This script is fairly simple to write, IF you make good use of built-in functions and modules.
Your script must accept as input one directory path — either ask the user to type in the directory or simply hard-code it into your script.
In general, a directory may contain regular files and subdirectories (and other unusual things, which you do not need to worry about for this assignment). This definition is recursive: subdirectories may contain files and further subdirectories, which may contain files and subdirectories of subdirectories, and so forth.
For the initial directory and each of its subdirectories, sub-subdirectories, and so forth, print the following information:
You may assume that there are only regular files and directories.
Take care that your script works for any starting directory, which may contain no files, no subdirectories, or lots of each.
Directory </p/course/cs368-cat/public/html/2010> 9641 2010-07-01 16:25:22 resources.html 7068 2010-07-20 13:59:20 index.html 1541 2009-07-08 09:52:37 cs-logo.gif 707 2010-07-20 16:16:16 homework-08-ideas.pl 658 2009-07-10 15:49:32 368-3.css Directory </p/course/cs368-cat/public/html/2010/01-introduction> 115281 2010-07-12 10:18:22 cs368-3-2010-summer-01-0712M.pdf 2369 2010-07-12 09:51:49 homework-01-assignment.html Directory </p/course/cs368-cat/public/html/2010/02-syntax> 131814 2010-07-13 09:56:27 cs368-3-2010-summer-02-0713T.pdf 2974 2010-07-13 10:02:07 homework-02-assignment.html 642 2010-07-13 16:40:02 in-class-code.html Directory </p/course/cs368-cat/public/html/2010/03-collections> 114186 2010-07-15 09:44:21 cs368-3-2010-summer-03-0715R.pdf 4144 2010-07-15 09:53:12 homework-03-assignment.html Directory </p/course/cs368-cat/public/html/2010/04-basic-io> 1454670 2009-07-13 13:46:40 homework-04.txt 132377 2010-07-16 10:12:51 cs368-3-2010-summer-04-0716F.pdf 3389 2010-07-16 10:34:29 homework-04-assignment.html Directory </p/course/cs368-cat/public/html/2010/05-subroutines> 113456 2010-07-19 10:08:07 cs368-3-2010-summer-05-0719M.pdf 3213 2010-07-19 10:30:29 homework-05-assignment.html 1133 2010-07-19 14:39:02 in-class-code.html Directory </p/course/cs368-cat/public/html/2010/06-data-structures> 237215 2009-07-20 23:57:39 example_access_log 124530 2010-07-20 09:49:22 cs368-3-2010-summer-06-0720T.pdf 8092 2010-07-20 10:14:27 homework-06-assignment.html Directory </p/course/cs368-cat/public/html/2010/08-standard-library> 2484 2010-07-20 16:15:22 homework-08-assignment.html
The following hints are a bit … vague. I am doing this to encourage you to look up some functions and modules online. You need to learn to do this anyway, so consider it good practice.
First, here is a list of functions (including some in the standard modules) that might be useful. All were mentioned in the class slides so far. Not all of them will be useful for this assignment, but it is good to know about them anyway. If your script reinvents any of these functions, you may not receive full credit for your assignment!!!
And here is an organizational hint. I suggest organizing your script in two parts: First, build a list of all directories and subdirectories, and then, for each one, print the report of the regular files contained therein. This is not the only way to do this assignment, but I find it is conceptually clear.
Here are some specific tests to consider:
Do the work yourself, consulting reasonable reference materials as needed. Any resource that provides a complete solution or offers significant material assistance toward a solution not OK to use. Asking the instructor for help is OK, asking other students for help is not. All standard UW policies concerning student conduct (esp. UWS 14) and information technology apply to this course and assignment.
A printout of your code, ideally on a single sheet of paper. Be sure to put your own name in the initial comment block. Identifying your work is important, or you may not receive appropriate credit.