Question: Python File Handling Lab For this lab you will be accessing a file in your linux OS File = /etc/passwd *Create snapshot of your linux

Python File Handling Lab

For this lab you will be accessing a file in your linux OS

File = /etc/passwd

*Create snapshot of your linux distro, so that you can go back if you make a mistake.

*This a scenario you are given, how you accomplish it with Python is up to you. Your challenge will be to logically troubleshoot through it.

Requirements (not given to you in the order they need to happen):

  • Extract from each line of the file only the user name user id group id and user shell.
  • Create a function that opens the file and creates 4 separate lists, incorporate error handling for your file handling.
  • Create a while loop that stays open until the user types exit
  • While the while loop is running the user will see on the screen all the available users on the system. The user can select a specific user and will be prompted which value they want to see (user id, group id, user shell)

What I have so far, and what I want to do on each comment.

#Lab import pwd from os import system import sys #Function to create the 4 lists def createLists(user): namesList.append(str(user.pw_name)) uIdList.append(str(user.pw_uid)) uGroupList.append(str(user.pw_gid)) uShellList.append(str(user.pw_shell)) def printUserInfo(ID): print(namesList[ID], uIdList[ID], uGroupList[ID], uShellList[ID]) # Load all user data try: allUsers = pwd.getpwall() except: print("Cannot get data!") sys.exit(1) #Declare empty array lists namesList = [] uIdList=[] uGroupList=[] uShellList=[] #Iterate through the user data index = 0 print("USER" + "\t" + "Name") print() for user in allUsers: #Print the required fields print(str(index)+"\t"+str(user.pw_name)) #+ "\t"+ str(user.pw_uid) + "\t" + str(user.pw_gid) + "\t" + str(user.pw_shell)) #Call function to create lists createLists(user) #Increment Key index index=index+1 #start while loop #get user input (key index number) #If user input = "exit" then break loop numberEntered = 40 printUserInfo(numberEntered) #current_user #print(str(user.pw_name)) #+ "\t"+ str(user.pw_uid) + "\t" + str(user.pw_gid) + "\t" + str(user.pw_shell)) #end loop 

Your welcome to change any of the code

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!