Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

can you fix the errors on this program ? and please no errors please Program: filesys.py Author:Ken Provides a menu-driven tool for navigating a

can you fix the errors on this program ? and please no errors please

"""

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 filename

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."""

command = input("Enter a number:")

if command in COMMANDS:

return command

else:

print("Error: command not recognized")

return acceptCommand()

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 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 lis of the filenames 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()

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

Introduction to Wireless and Mobile Systems

Authors: Dharma P. Agrawal, Qing An Zeng

4th edition

1305087135, 978-1305087132, 9781305259621, 1305259629, 9781305537910 , 978-130508713

More Books

Students also viewed these Programming questions