Use python 3. Implement a program to import student data into a database and produce class rosters. $ python3 import.py characters.csv $ python3 roster.py Gryffindor Lavender Brown, born 1979 Colin Creevey, born 1981 Seamus Finnigan, born 1979 Hermione Jean Granger, born 1979 Neville Longbottom, born 1980 Parvati Patil, born 1979 Harry James Potter, born 1980 Dean Thomas, born 1980 Romilda Vane, born 1981 Ginevra Molly Weasley, born 1981 Ronald Bilius Weasley, born 1980 Download the file that you're going to use for this problem here (https://drive.google.com/drive/folders/1CmkEt64GSvC9fKInheEhciOaFM7ak03w?usp=sharing). After extracting this file, you should see a characters.csv file and a students.db database. There are also two Python files, import.py and roster.py, which contain nothing and these are where you're going to type your work. Background Hogwarts is in need of a student database. For years, professors have been maintaining a CSV file containing all of the students' names and houses and years. But that file didn't make it easy to get access to certain data, such as a roster for all the Ravenclaw students, or an alphabetical listing of the students enrolled at the school. Hence, you need to write a Python program to import all of the school's data into a SQLite database, and another Python program to query that database to get house rosters for each of the houses of Hogwarts. Specification In import.py, write a program that imports data from a CSV file. Your program should accept the name of CSV file via command-line argument. If an incorrect number of command-line arguments are provided, your program should print an error and exit. You may assume that the CSV file will exist, and will have columns name, house, and birth. For each student in the CSV file, insert the student into the students table in the students.db database. While the provided CSV file has just a name column, the database has separate columns for first, middle, and last names. You need to parse each name and separate in into first, middle, and last names. You may assume that each person's name field will contain either two space-separated names (a first and last name) or three space-separated names (a first, middle, and last name). For students without a middle name, you should leave their middle name field as NULL in the table. The table already exists in the database with the appropriate columns, so no need to create a new table. In roster.py, write a program that prints a list of students for a given house in alphabetical order. Your program should accept the name of a house as a command-line argument. If an incorrect number of command-line arguments are provided, your program should print an error and exit. Your program should query the students table in the students.db database for all of the students in the specified house. Your program should print each of the student's full name and birth year (formatted as Harry James Potter, born 1980 or Luna Lovegood, born 1981). Each student should be printed on their own line. Students should be ordered by last name. For students with the same last name, they should be ordered by first name. Testing $ python3 import.py characters.csv $ python3 roster.py Gryffindor Lavender Brown, born 1979 Colin Creevey, born 1981 Seamus Finnigan, born 1979 Hermione Jean Granger, born 1979 Neville Longbottom, born 1980 Parvati Patil, born 1979 Harry James Potter, born 1980 Dean Thomas, born 1980 Romilda Vane, born 1981 Ginevra Molly Weasley, born 1981 Ronald Bilius Weasley, born 1980 $ python3 roster.py Hufflepuff Hannah Abbott, born 1980 Susan Bones, born 1979 Cedric Diggory, born 1977 Justin Finch-Fletchley, born 1979 Ernest Macmillan, born 1980 $ python3 roster.py Ravenclaw Terry Boot, born 1980 Mandy Brocklehurst, born 1979 Cho Chang, born 1979 Penelope Clearwater, born 1976 Michael Corner, born 1979 Roger Davies, born 1978 Marietta Edgecombe, born 1978 Anthony Goldstein, born 1980 Robert Hilliard, born 1974 Luna Lovegood, born 1981 Isobel MacDougal, born 1980 Padma Patil, born 1979 Lisa Turpin, born 1979 $ python3 roster.py Slytherin Millicent Bulstrode, born 1979 Vincent Crabbe, born 1979 Tracey Davis, born 1980 Marcus Flint, born 1975 Gregory Goyle, born 1980 Terence Higgs, born 1979 Draco Lucius Malfoy, born 1980 Adelaide Murton, born 1982 Pansy Parkinson, born 1979 Adrian Pucey, born 1977 Blaise Zabini, born 1979 What to submit? Upload your import.py and roster.py files.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Use python 3. Implement a program to import student data into a database and produce class rosters.

$ python3 import.py characters.csv $ python3 roster.py Gryffindor Lavender Brown, born 1979 Colin Creevey, born 1981 Seamus Finnigan, born 1979 Hermione Jean Granger, born 1979 Neville Longbottom, born 1980 Parvati Patil, born 1979 Harry James Potter, born 1980 Dean Thomas, born 1980 Romilda Vane, born 1981 Ginevra Molly Weasley, born 1981 Ronald Bilius Weasley, born 1980

Download the file that you're going to use for this problem here (https://drive.google.com/drive/folders/1CmkEt64GSvC9fKInheEhciOaFM7ak03w?usp=sharing). After extracting this file, you should see a characters.csv file and a students.db database. There are also two Python files, import.py and roster.py, which contain nothing and these are where you're going to type your work.

Background

Hogwarts is in need of a student database. For years, professors have been maintaining a CSV file containing all of the students' names and houses and years. But that file didn't make it easy to get access to certain data, such as a roster for all the Ravenclaw students, or an alphabetical listing of the students enrolled at the school.

Hence, you need to write a Python program to import all of the school's data into a SQLite database, and another Python program to query that database to get house rosters for each of the houses of Hogwarts.

Specification

In import.py, write a program that imports data from a CSV file.

  • Your program should accept the name of CSV file via command-line argument.
    • If an incorrect number of command-line arguments are provided, your program should print an error and exit.
    • You may assume that the CSV file will exist, and will have columns namehouse, and birth.
  • For each student in the CSV file, insert the student into the students table in the students.db database.
    • While the provided CSV file has just a name column, the database has separate columns for firstmiddle, and last names.
    • You need to parse each name and separate in into first, middle, and last names.
    • You may assume that each person's name field will contain either two space-separated names (a first and last name) or three space-separated names (a first, middle, and last name).
    • For students without a middle name, you should leave their middle name field as NULL in the table.
    • The table already exists in the database with the appropriate columns, so no need to create a new table.

In roster.py, write a program that prints a list of students for a given house in alphabetical order.

  • Your program should accept the name of a house as a command-line argument. If an incorrect number of command-line arguments are provided, your program should print an error and exit.
  • Your program should query the students table in the students.db database for all of the students in the specified house.
  • Your program should print each of the student's full name and birth year (formatted as Harry James Potter, born 1980 or Luna Lovegood, born 1981).
    • Each student should be printed on their own line.
    • Students should be ordered by last name. For students with the same last name, they should be ordered by first name.

Testing

$ python3 import.py characters.csv $ python3 roster.py Gryffindor Lavender Brown, born 1979 Colin Creevey, born 1981 Seamus Finnigan, born 1979 Hermione Jean Granger, born 1979 Neville Longbottom, born 1980 Parvati Patil, born 1979 Harry James Potter, born 1980 Dean Thomas, born 1980 Romilda Vane, born 1981 Ginevra Molly Weasley, born 1981 Ronald Bilius Weasley, born 1980 $ python3 roster.py Hufflepuff Hannah Abbott, born 1980 Susan Bones, born 1979 Cedric Diggory, born 1977 Justin Finch-Fletchley, born 1979 Ernest Macmillan, born 1980 $ python3 roster.py Ravenclaw Terry Boot, born 1980 Mandy Brocklehurst, born 1979 Cho Chang, born 1979 Penelope Clearwater, born 1976 Michael Corner, born 1979 Roger Davies, born 1978 Marietta Edgecombe, born 1978 Anthony Goldstein, born 1980 Robert Hilliard, born 1974 Luna Lovegood, born 1981 Isobel MacDougal, born 1980 Padma Patil, born 1979 Lisa Turpin, born 1979 $ python3 roster.py Slytherin Millicent Bulstrode, born 1979 Vincent Crabbe, born 1979 Tracey Davis, born 1980 Marcus Flint, born 1975 Gregory Goyle, born 1980 Terence Higgs, born 1979 Draco Lucius Malfoy, born 1980 Adelaide Murton, born 1982 Pansy Parkinson, born 1979 Adrian Pucey, born 1977 Blaise Zabini, born 1979

What to submit?

Upload your import.py and roster.py files.

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY