(need this asap please help Python 2) Add a command to this chapters case study program that allows the user to view the contents of
(need this asap please help Python 2)
Add a command to this chapters case study program that allows the user to view the contents of a file in the current working directory. When the command is selected, the program should display a list of filenames and a prompt for the name of the file to be viewed. Be sure to include error recover.
this is what i have so far i need this added to my program.
""" Program: filesys.py Author: Ken
Provides a menu-driven tool for navigating a file system and gathering information on files. """
import os, os.path
QUIT = '7'
COMMANDS = ('1', '2', '3', '4', '5', '6', '7')
MENU = """1 List the current directory 2 Move up 3 Move down 4 Number of files in the directory 5 Size of the directory in bytes 6 Search for a file name 7 Quit the program"""
def main(): while True: print(os.getcwd()) print(MENU) command = acceptCommand() runCommand(command) if command == QUIT: print("Have a nice day!") break
def acceptCommand(): """Inputs and returns a legitimate command number.""" while True: command = input("Enter a number: ") if not command in COMMANDS: print("Error: command not recognized") else: return command
def runCommand(command): """Selects and runs a command.""" if command == '1': listCurrentDir(os.getcwd()) elif command == '2': moveUp() elif command == '3': moveDown(os.getcwd()) elif command == '4': print("The total number of files is", \ countFiles(os.getcwd())) elif command == '5': print("The total number of bytes is", \ countBytes(os.getcwd())) elif command == '6': target = input("Enter the search string: ") fileList = findFiles(target, os.getcwd()) if not fileList: print("String not found") else: for f in fileList: print(f)
def listCurrentDir(dirName): """Prints a list of the cwd's contents.""" lyst = os.listdir(dirName) for element in lyst: print(element)
def moveUp(): """Moves up to the parent directory.""" os.chdir("..")
def moveDown(currentDir): """Moves down to the named subdirectory if it exists.""" newDir = input("Enter the directory name: ") if os.path.exists(currentDir + os.sep + newDir) and \ os.path.isdir(newDir): os.chdir(newDir) else: print("ERROR: no such name")
def countFiles(path): """Returns the number of files in the cwd and all its subdirectories.""" count = 0 lyst = os.listdir(path) for element in lyst: if os.path.isfile(element): count += 1 else: os.chdir(element) count += countFiles(os.getcwd()) os.chdir("..") return count
def countBytes(path): """Returns the number of bytes in the cwd and all its subdirectories.""" count = 0 lyst = os.listdir(path) for element in lyst: if os.path.isfile(element): count += os.path.getsize(element) else: os.chdir(element) count += countBytes(os.getcwd()) os.chdir("..") return count
def findFiles(target, path): """Returns a list of the file names that contain the target string in the cwd and all its subdirectories.""" files = [] lyst = os.listdir(path) for element in lyst: if os.path.isfile(element): if target in element: files.append(path + os.sep + element) else: os.chdir(element) files.extend(findFiles(target, os.getcwd())) os.chdir("..") return files
if __name__ == "__main__": main()
here is a pic for better viewing
Program: rilesys.py Authoz: Ren Provides a menu-driven tool for navigating a ile aystem and gathering informa 1on on files import os, o3.path COMMANDS'1', '2", '3', 4',5',6,7') MENU = """1 List the current directory 3 Move down 2 ove up Number of file in the directory 5 S12e of the directory in bytes 6 Search for a file name 7 Quit the program"mm def main): while True: print (os.getcwd ()) print (MENU) command acceptCommand () runCommand (command) f command QUIT: print ("Have a nice day!") break def acceptcomand() """Inputs and returns a legitimate command number.m while True: commandinput ("Enter a number: " it not command in COMMANDS: print( Error: command not recogmized") else: return commandStep by Step Solution
There are 3 Steps involved in it
Step: 1
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started