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
Get step-by-step solutions from verified subject matter experts
