Your cart is currently empty!
Introduction 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:…
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:
Test_Dir:
index.html
myPipe
mySocket
Files/
Labs/
README
labs.html
1/
README
file1.1
file1.2
file1.3
index.html
other4
other5
2/
Data/
README
a
b
c
README
file2.1
file2.2
index.html
other1
other4
other5
3/
README
file3.1
file3.2
file3.3
file3.4
index.html
other4
Lectures/
README
lecs.html
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:
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) |
<dir> | Directory |
<fifo> | A named pipe |
<sock> | A socket |
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.
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.py
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.