In [3]:
import glob
fnames = sorted(glob.glob("invoices/*"))
print(fnames)
['invoices/1.dat', 'invoices/2.dat', 'invoices/3.dat', 'invoices/4.dat', 'invoices/5.dat']
In [8]:
fname = "invoices/3.dat"
with open(fname,'r') as f:
text = f.read().splitlines()
print(text)
['3,Sun General,Srivatsan', 'Batteries,Utilities,6,14', 'USB Cable,Electronics,1,85', 'Ball Pens,Stationery,5,12', 'Onions,Vegetables/Food,1.25,100']
In [9]:
ss = '3,Sun General,Srivatsan'
fields = ss.split(',')
print(fields)
['3', 'Sun General', 'Srivatsan']
sample data in grades.dat¶
Jones:1301,4,A:1302,4,B:2720,3,A
Smith:1301,4,C:1302,4,D
Alice:2720,3,A:4710,4,B
In [13]:
with open("grades.dat",'r') as f:
lines = f.read().splitlines()
transcripts = []
for line in lines:
parts = line.split(':')
name = parts[0]
courses = []
for part in parts[1:]:
course,credits,grade = part.split(',')
courses.append((course,credits,grade))
transcripts.append((name,courses))
for transcript in transcripts:
print(transcript)
('Jones', [('1301', '4', 'A'), ('1302', '4', 'B'), ('2720', '3', 'A')]) ('Smith', [('1301', '4', 'C'), ('1302', '4', 'D')]) ('Alice', [('2720', '3', 'A'), ('4710', '4', 'B')])
In [17]:
def student_gpas(transcripts):
gpas = []
grade_points = {'A':4,'B':3,'C':2,'D':1,'F':0}
for transcript in transcripts:
name = transcript[0]
courses = transcript[1]
total_points = 0
total_credits = 0
for course, credits, grade in courses:
total_points += grade_points.get(grade,0)*int(credits)
total_credits += int(credits)
gpa = total_points / total_credits
gpas.append((name,round(gpa,2)))
return gpas
In [18]:
g = student_gpas(transcripts)
print(g)
[('Jones', 3.64), ('Smith', 1.5), ('Alice', 3.43)]