Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

(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

image text in transcribedimage text in transcribedimage text in transcribed

image text in transcribed

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 command

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Oracle Solaris 11.2 System Administration (oracle Press)

Authors: Harry Foxwell

1st Edition

007184421X, 9780071844215

More Books

Students also viewed these Databases questions