Redo the previous assignment in Python (with some extra specs).
You are now familiar with the problem domain. You can gain practise doing file processing in Python.
Your task is to recurse through a subtree of the filesystem and put a file called dir.xml in each directory. You will pull data from 2 sources: the directory itself, and a file that may appear in each directory called README .
We’ve expanded the filetypes you need to worry about. See below.
See tux:/home/kschmidt/public_html/CS265/Assignments/Python-Dir2XML/Test_Dir . Here is what the directory looks like:
Copy over createTestDirs from the assignment directory, run it. It will provide a consistent directory subtree, as above, with randomly placed named sockets (aSocket) and names pipes (aPipe).
The README file may have 2 entries, each on its own line. Fields are separated by colons. Neither entry is required:
- index – lists a single file, the top-level HTML page for this directory.
- required – a colon-separated list of files that should be in this directory
You 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:
|<file>||Regular file (or, symlink)|
|<fifo>||A named pipe|
Index 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 :
It 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)
Folks, 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.
Do not submit temporary files, nor your test data. Just the required scripts, and any helper files.
What to hand in
- py — your Python3 script
- Any other files needed
- README (optional) — anything you want to tell us before we grade.