Skip to content

Commit e1f61df

Browse files
committed
feat: complete week6
1 parent be6b3b6 commit e1f61df

File tree

11 files changed

+130
-0
lines changed

11 files changed

+130
-0
lines changed

Week6/lines/lines.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import sys
2+
3+
if len(sys.argv) != 2 or not sys.argv[1].endswith(".py"):
4+
sys.exit("Invalid arguments.")
5+
6+
try:
7+
with open(sys.argv[1]) as file:
8+
print(
9+
sum(
10+
1 for line in file if line.strip() and not line.lstrip().startswith("#")
11+
)
12+
)
13+
except FileNotFoundError:
14+
sys.exit("File does not exist.")

Week6/pizza/pizza.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from tabulate import tabulate
2+
import csv
3+
import sys
4+
5+
if len(sys.argv) != 2 or not sys.argv[1].endswith(".csv"):
6+
sys.exit("Invalid arguments.")
7+
8+
try:
9+
with open(sys.argv[1]) as file:
10+
print(tabulate(csv.DictReader(file), headers="keys", tablefmt="grid"))
11+
except FileNotFoundError:
12+
sys.exit("File does not exist.")

Week6/pizza/test.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

Week6/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

Week6/scourgify/scourgify.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import csv
2+
import sys
3+
4+
if len(sys.argv) != 3 or not sys.argv[1].endswith(".csv"):
5+
sys.exit("Invalid arguments.")
6+
7+
try:
8+
with open(sys.argv[1]) as input, open(sys.argv[2], "w", newline="") as output:
9+
reader = csv.DictReader(input)
10+
writer = csv.DictWriter(output, fieldnames=["first", "last", "house"])
11+
writer.writeheader()
12+
for row in reader:
13+
last_name, first_name = row["name"].strip().split(", ")
14+
writer.writerow(
15+
{"first": first_name, "last": last_name, "house": row["house"]}
16+
)
17+
18+
except FileNotFoundError:
19+
sys.exit("File does not exist.")

Week6/shirt/before1.jpg

980 KB
Loading

Week6/shirt/before2.jpg

1.18 MB
Loading

Week6/shirt/before3.jpg

1.19 MB
Loading

Week6/shirt/muppets.zip

3.28 MB
Binary file not shown.

Week6/shirt/shirt.png

63.9 KB
Loading

Week6/shirt/shirt.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from PIL import Image, ImageOps
2+
import sys
3+
4+
if len(sys.argv) != 3:
5+
sys.exit("Invalid arguments.")
6+
7+
input = sys.argv[1]
8+
output = sys.argv[2]
9+
types = (".jpg", ".jpeg", ".png")
10+
if (
11+
not input.endswith(types)
12+
or not output.endswith(types)
13+
or input.split(".")[1] != output.split(".")[1]
14+
):
15+
sys.exit("Invalid arguments.")
16+
17+
18+
shirt = Image.open("shirt.png")
19+
try:
20+
with Image.open(input) as im:
21+
im = ImageOps.fit(im, shirt.size)
22+
im.paste(shirt, shirt)
23+
im.save(output)
24+
except FileNotFoundError:
25+
sys.exit("File does not exist.")

0 commit comments

Comments
 (0)