subject

Add a command to this chapter’s 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 recovery in the program. If the user enters a filename that does not exist they should be prompted to enter a filename that does exist.
An example of the program input and output is shown below:

/root/sandbox
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 View the contents of a file
8 Quit the program
Enter a number: 7

Files in /root/sandbox:
filesys. py
example. txt
Enter a file name from these names: example. txt

THIS IS CONTENT OF AN EXAMPLE FILE.

/root/sandbox
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 View the contents of a file
8 Quit the program
Enter a number: 8

Have a nice day!
code that needs to be modified:
import os, os. path

QUIT = '8'

COMMANDS = ('1', '2', '3', '4', '5', '6','7', '8')

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 View the contents of a file
8 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)
# add your condition here

def viewFile(dirName):
# add your code here
print("")

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()

ansver
Answers: 1

Other questions on the subject: Computers and Technology

image
Computers and Technology, 22.06.2019 19:30, tfaulk2884
Singing in the rain: this first part of the film shows the early history of motion picture. how accurate do you think the portrayal of the early motion picture industry is? why? is historical accuracy important in films and theater productions? explain.
Answers: 1
image
Computers and Technology, 23.06.2019 07:00, lin550
Why were most movies from the late 1890s until the early 1930s only filmed in black and white? there were only a few people who could afford the technology to produce color motion pictures back then. audiences did not want color motion pictures until later. the film used to make color motion pictures often overheated, which was a safety hazard, so it was generally not allowed. color films had to be hand-colored, frame by frame.
Answers: 3
image
Computers and Technology, 23.06.2019 14:30, kodak0531
Which of the following would not be considered a pc? a. mainframe b. desktop c. tablet pc d. laptop
Answers: 2
image
Computers and Technology, 23.06.2019 14:30, naomi20044
Select the correct answer. andy received a potentially infected email that was advertising products. andy is at risk of which type of security threat? a. spoofing b. sniffing c. spamming d. phishing e. typo-squatting
Answers: 2
You know the right answer?
Add a command to this chapter’s case study program that allows the user to view the contents of a fi...

Questions in other subjects: