Skip to content

Commit b1e85aa

Browse files
authored
uploading pset6
1 parent 2cef785 commit b1e85aa

File tree

16 files changed

+287
-0
lines changed

16 files changed

+287
-0
lines changed

pset6/lines.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from sys import argv, exit
2+
3+
if len(argv) != 2:
4+
if len(argv) < 2:
5+
exit('Too few command-line arguments')
6+
else:
7+
exit('Too mant command-line arguments')
8+
9+
filename = argv[1]
10+
11+
dot = filename.find('.')
12+
if filename[dot:] != '.py':
13+
exit('Not a Python file')
14+
15+
lines = 0
16+
17+
try:
18+
with open(filename,'r') as file:
19+
for line in file:
20+
if line.isspace():
21+
continue
22+
if line.strip().startswith('#'):
23+
continue
24+
lines +=1
25+
except FileNotFoundError:
26+
exit('File does not exist')
27+
28+
print(lines)

pset6/pizza/pizza.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from sys import argv, exit
2+
from tabulate import tabulate
3+
import csv
4+
5+
def main():
6+
filename = get_filename(argv)
7+
check_csv(filename)
8+
9+
try:
10+
with open(filename,'r') as file:
11+
reader=csv.reader(file)
12+
table=[]
13+
headers=list(next(reader))
14+
for row in reader:
15+
table.append([row[0], row[1], row[2]])
16+
print(tabulate(table, headers, tablefmt="grid"))
17+
except FileNotFoundError:
18+
exit('File does not exist')
19+
except Exception as arg:
20+
exit(arg)
21+
22+
def get_filename(arguments):
23+
if len(arguments) != 2:
24+
if len(arguments) < 2:
25+
exit('Too few command-line arguments')
26+
else:
27+
exit('Too mant command-line arguments')
28+
return argv[1]
29+
30+
def check_csv(filename):
31+
dot = filename.find('.')
32+
if filename[dot:] != '.csv':
33+
exit('Not a CSV file')
34+
35+
if __name__ == '__main__':
36+
main()

pset6/pizza/regular.csv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Regular Pizza,Small,Large
2+
Cheese,$13.50,$18.95
3+
1 topping,$14.75,$20.95
4+
2 toppings,$15.95,$22.95
5+
3 toppings,$16.95,$24.95
6+
Special,$18.50,$26.95

pset6/pizza/sicilian.csv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Sicilian Pizza,Small,Large
2+
Cheese,$25.50,$39.95
3+
1 item,$27.50,$41.95
4+
2 items,$29.50,$43.95
5+
3 items,$31.50,$45.95
6+
Special,$33.50,$47.95

pset6/scourgify/after.csv

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
first,last,house
2+
Hannah,Abbott,Hufflepuff
3+
Katie,Bell,Gryffindor
4+
Susan,Bones,Hufflepuff
5+
Terry,Boot,Ravenclaw
6+
Lavender,Brown,Gryffindor
7+
Millicent,Bulstrode,Slytherin
8+
Cho,Chang,Ravenclaw
9+
Penelope,Clearwater,Ravenclaw
10+
Vincent,Crabbe,Slytherin
11+
Colin,Creevey,Gryffindor
12+
Dennis,Creevey,Gryffindor
13+
Cedric,Diggory,Hufflepuff
14+
Marietta,Edgecombe,Ravenclaw
15+
Justin,Finch-Fletchley,Hufflepuff
16+
Seamus,Finnigan,Gryffindor
17+
Anthony,Goldstein,Ravenclaw
18+
Gregory,Goyle,Slytherin
19+
Hermione,Granger,Gryffindor
20+
Angelina,Johnson,Gryffindor
21+
Lee,Jordan,Gryffindor
22+
Neville,Longbottom,Gryffindor
23+
Luna,Lovegood,Ravenclaw
24+
Remus,Lupin,Gryffindor
25+
Draco,Malfoy,Slytherin
26+
Scorpius,Malfoy,Slytherin
27+
Ernie,Macmillan,Hufflepuff
28+
Minerva,McGonagall,Gryffindor
29+
Eloise,Midgen,Gryffindor
30+
Cormac,McLaggen,Gryffindor
31+
Graham,Montague,Slytherin
32+
Theodore,Nott,Slytherin
33+
Pansy,Parkinson,Slytherin
34+
Padma,Patil,Gryffindor
35+
Parvati,Patil,Gryffindor
36+
Harry,Potter,Gryffindor
37+
Tom,Riddle,Slytherin
38+
Demelza,Robins,Gryffindor
39+
Newt,Scamander,Hufflepuff
40+
Horace,Slughorn,Slytherin
41+
Zacharias,Smith,Hufflepuff
42+
Severus,Snape,Slytherin
43+
Alicia,Spinnet,Gryffindor
44+
Pomona,Sprout,Hufflepuff
45+
Dean,Thomas,Gryffindor
46+
Romilda,Vane,Gryffindor
47+
Myrtle,Warren,Ravenclaw
48+
Fred,Weasley,Gryffindor
49+
George,Weasley,Gryffindor
50+
Ginny,Weasley,Gryffindor
51+
Percy,Weasley,Gryffindor
52+
Ron,Weasley,Gryffindor
53+
Oliver,Wood,Gryffindor
54+
Blaise,Zabini,Slytherin

pset6/scourgify/before.csv

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name,house
2+
"Abbott, Hannah",Hufflepuff
3+
"Bell, Katie",Gryffindor
4+
"Bones, Susan",Hufflepuff
5+
"Boot, Terry",Ravenclaw
6+
"Brown, Lavender",Gryffindor
7+
"Bulstrode, Millicent",Slytherin
8+
"Chang, Cho",Ravenclaw
9+
"Clearwater, Penelope",Ravenclaw
10+
"Crabbe, Vincent",Slytherin
11+
"Creevey, Colin",Gryffindor
12+
"Creevey, Dennis",Gryffindor
13+
"Diggory, Cedric",Hufflepuff
14+
"Edgecombe, Marietta",Ravenclaw
15+
"Finch-Fletchley, Justin",Hufflepuff
16+
"Finnigan, Seamus",Gryffindor
17+
"Goldstein, Anthony",Ravenclaw
18+
"Goyle, Gregory",Slytherin
19+
"Granger, Hermione",Gryffindor
20+
"Johnson, Angelina",Gryffindor
21+
"Jordan, Lee",Gryffindor
22+
"Longbottom, Neville",Gryffindor
23+
"Lovegood, Luna",Ravenclaw
24+
"Lupin, Remus",Gryffindor
25+
"Malfoy, Draco",Slytherin
26+
"Malfoy, Scorpius",Slytherin
27+
"Macmillan, Ernie",Hufflepuff
28+
"McGonagall, Minerva",Gryffindor
29+
"Midgen, Eloise",Gryffindor
30+
"McLaggen, Cormac",Gryffindor
31+
"Montague, Graham",Slytherin
32+
"Nott, Theodore",Slytherin
33+
"Parkinson, Pansy",Slytherin
34+
"Patil, Padma",Gryffindor
35+
"Patil, Parvati",Gryffindor
36+
"Potter, Harry",Gryffindor
37+
"Riddle, Tom",Slytherin
38+
"Robins, Demelza",Gryffindor
39+
"Scamander, Newt",Hufflepuff
40+
"Slughorn, Horace",Slytherin
41+
"Smith, Zacharias",Hufflepuff
42+
"Snape, Severus",Slytherin
43+
"Spinnet, Alicia",Gryffindor
44+
"Sprout, Pomona",Hufflepuff
45+
"Thomas, Dean",Gryffindor
46+
"Vane, Romilda",Gryffindor
47+
"Warren, Myrtle",Ravenclaw
48+
"Weasley, Fred",Gryffindor
49+
"Weasley, George",Gryffindor
50+
"Weasley, Ginny",Gryffindor
51+
"Weasley, Percy",Gryffindor
52+
"Weasley, Ron",Gryffindor
53+
"Wood, Oliver",Gryffindor
54+
"Zabini, Blaise",Slytherin

pset6/scourgify/scourgify.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from sys import argv, exit
2+
import csv
3+
4+
def main():
5+
readfile, writefile = get_filenames(argv)
6+
check_csv(readfile)
7+
check_csv(writefile)
8+
9+
firstnames=[]
10+
lastnames=[]
11+
house=[]
12+
try:
13+
with open(readfile,'r') as file:
14+
reader=csv.DictReader(file)
15+
for row in reader:
16+
last, first=row['name'].split(',')
17+
lastnames.append(last.strip())
18+
firstnames.append(first.strip())
19+
house.append(row['house'])
20+
except FileNotFoundError:
21+
exit('File does not exist')
22+
except Exception as arg:
23+
exit(arg)
24+
25+
with open(writefile,'w') as file:
26+
fieldnames=['first','last','house']
27+
writer=csv.DictWriter(file, fieldnames=fieldnames)
28+
writer.writeheader()
29+
for i in range(len(firstnames)):
30+
writer.writerow({'first': firstnames[i],'last': lastnames[i],'house': house[i],})
31+
32+
33+
34+
def get_filenames(arguments):
35+
if len(arguments) != 3:
36+
if len(arguments) < 3:
37+
exit('Too few command-line arguments')
38+
else:
39+
exit('Too mant command-line arguments')
40+
return [argv[1],argv[2]]
41+
42+
def check_csv(filename):
43+
dot = filename.find('.')
44+
if filename[dot:] != '.csv':
45+
exit('Not a CSV file')
46+
47+
if __name__ == '__main__':
48+
main()

pset6/shirt/after1.jpg

43.7 KB
Loading

pset6/shirt/after2.jpg

42.9 KB
Loading

pset6/shirt/after3.jpg

42.5 KB
Loading

0 commit comments

Comments
 (0)