class FileNode:     def __init__(self, filename, depth=0):         """This function initializes our FileNode         Args:             filename (string): The filename of the current node.             depth (int, optional): The depth of the current node,. Defaults to 0.         """         self.filename = filename         self.depth = depth         # Hint: It is best to implement the subdirectory into a dictionary with keys being the filename and the values being the actual object FileNode.         self.subdirectories = {}     def __delete__(self):         """This function overrides the default deletion of the current object and also deletes the subdirectories"""         for v in self.subdirectories.values():             del v         self.subdirectories.clear()     def insert(self, filename, path, depth):         """This function inserts the file into a specific path.         If the path does not exist, then the folder is not created.         Args:             filename (string): The filename of the current folder to be inserted             path (lists of string): The path of the filename             depth (int): The depth of the node to be inserted.         """         # Part A. Implement the insertion of a new file here. If the given path does not exist, then you may skip the file.     def print_dir(self):         """This prints the current directory and accesses the subdirectories as well."""         # Part B. Implement the printing of the directory here.         # You should access subdirectories first before moving to the next folder within the same directory. #### Do not modify this object #### class FileSystem:     def __init__(self, root_dir):         """This is the FileSystem implementation. A root node is required once an instance is created         Args:             root_dir (string): Filename of the root node for the file system.         """         self.root = FileNode(root_dir)     def __delete__(self):         """Deletes the filesystem by deleting the root and deleting the subdirectories automatically due to the override function."""         del self.root     def insert(self, filename, path):         """Inserts a new file with the given path starting from the root node.         Args:             filename (string): The filename of the folder to be inserted.             path (string): The path of the folder to be inserted         """         self.root.insert(filename, path, 1)     def print_system(self):         """Prints the directory in the given format"""         self.root.print_dir() if __name__ == "__main__":     root_dir = input()     n = int(input())     filenames = []     for i in range(n):         # Part C. Implement parsing of input lines.         pass     #### DO NOT MODIFY BELOW ####     fs = FileSystem(root_dir)     for f, p in filenames:         fs.insert(f, p)     fs.print_system()

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

will give thumbs up if correct!

PYTHON Activity
(see pic)

Code for COPY (Template): 

class FileNode:
    def __init__(self, filename, depth=0):
        """This function initializes our FileNode

        Args:
            filename (string): The filename of the current node.
            depth (int, optional): The depth of the current node,. Defaults to 0.
        """
        self.filename = filename
        self.depth = depth
        # Hint: It is best to implement the subdirectory into a dictionary with keys being the filename and the values being the actual object FileNode.
        self.subdirectories = {}

    def __delete__(self):
        """This function overrides the default deletion of the current object and also deletes the subdirectories"""
        for v in self.subdirectories.values():
            del v
        self.subdirectories.clear()

    def insert(self, filename, path, depth):
        """This function inserts the file into a specific path.
        If the path does not exist, then the folder is not created.

        Args:
            filename (string): The filename of the current folder to be inserted
            path (lists of string): The path of the filename
            depth (int): The depth of the node to be inserted.
        """
        # Part A. Implement the insertion of a new file here. If the given path does not exist, then you may skip the file.

    def print_dir(self):
        """This prints the current directory and accesses the subdirectories as well."""
        # Part B. Implement the printing of the directory here.
        # You should access subdirectories first before moving to the next folder within the same directory.


#### Do not modify this object ####
class FileSystem:
    def __init__(self, root_dir):
        """This is the FileSystem implementation. A root node is required once an instance is created

        Args:
            root_dir (string): Filename of the root node for the file system.
        """
        self.root = FileNode(root_dir)

    def __delete__(self):
        """Deletes the filesystem by deleting the root and deleting the subdirectories automatically due to the override function."""
        del self.root

    def insert(self, filename, path):
        """Inserts a new file with the given path starting from the root node.

        Args:
            filename (string): The filename of the folder to be inserted.
            path (string): The path of the folder to be inserted
        """
        self.root.insert(filename, path, 1)

    def print_system(self):
        """Prints the directory in the given format"""
        self.root.print_dir()


if __name__ == "__main__":
    root_dir = input()
    n = int(input())
    filenames = []

    for i in range(n):
        # Part C. Implement parsing of input lines.
        pass

    #### DO NOT MODIFY BELOW ####
    fs = FileSystem(root_dir)
    for f, p in filenames:
        fs.insert(f, p)

    fs.print_system()
 
Output Format
PYTHON ACTIVITY:
You should follow the output format indicated in the sample test case with the ordering of files based
chronologically.
In this problem, you are going to implement a filesystem using a tree data structure. Similar to a filesystem,
each node (or file), may have multiple children. If the specified path does not exist, then you should disregard
For the spacing, use the tab (\t) character for the subdirectories.
that file. Once you are done adding elements to the filesystem, you should print the directory structure in the
specified format.
Rootdir
Subdirl
Required modifications: 1. Insertion of a new element 2. Printing of the directory from the root node. 3.
Parsing of the input.
subsubdirl
subsubdir2
Subdir2
Input Format
Subdir3
subsubdirl
First line is the name of the root directory.
Second line, n, is the number of subdirectories that follows.
Sample Input 0
For each line that follows, it shows the following format:
C
12
Filename-root node,next path,next path,...
Users-C
Windows-C
Constraints
ProgramFiles-C
Adobe-C, ProgramFiles
Steam-C, ProgramFiles
ferdie-C,Users
john-C,Users
guest-C,Users
Firmware-C,Windows
System-C,Windows
Documents-C,Users, ferdie
Downloads-C,Users, ferdie
1. You may assume that the filenames are all alphabetical characters with no special characters.
2. n< 100
3. The maximum path length is 20 (including the root directory).
4. You may assume that there are no similar filenames within the same directory but may exist outside of the
directory (much like a normal filesystem).
Sample Output 0
C
Users
ferdie
Documents
Downloads
john
guest
Windows
Firmware
System
ProgramFiles
Adobe
Steam
Transcribed Image Text:Output Format PYTHON ACTIVITY: You should follow the output format indicated in the sample test case with the ordering of files based chronologically. In this problem, you are going to implement a filesystem using a tree data structure. Similar to a filesystem, each node (or file), may have multiple children. If the specified path does not exist, then you should disregard For the spacing, use the tab (\t) character for the subdirectories. that file. Once you are done adding elements to the filesystem, you should print the directory structure in the specified format. Rootdir Subdirl Required modifications: 1. Insertion of a new element 2. Printing of the directory from the root node. 3. Parsing of the input. subsubdirl subsubdir2 Subdir2 Input Format Subdir3 subsubdirl First line is the name of the root directory. Second line, n, is the number of subdirectories that follows. Sample Input 0 For each line that follows, it shows the following format: C 12 Filename-root node,next path,next path,... Users-C Windows-C Constraints ProgramFiles-C Adobe-C, ProgramFiles Steam-C, ProgramFiles ferdie-C,Users john-C,Users guest-C,Users Firmware-C,Windows System-C,Windows Documents-C,Users, ferdie Downloads-C,Users, ferdie 1. You may assume that the filenames are all alphabetical characters with no special characters. 2. n< 100 3. The maximum path length is 20 (including the root directory). 4. You may assume that there are no similar filenames within the same directory but may exist outside of the directory (much like a normal filesystem). Sample Output 0 C Users ferdie Documents Downloads john guest Windows Firmware System ProgramFiles Adobe Steam
Expert Solution
steps

Step by step

Solved in 4 steps with 3 images

Blurred answer
Knowledge Booster
Dictionary
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education