Automating Real-World Tasks with Python Coursera Quiz Answers

Coursera was launched in 2012 by Daphne Koller and Andrew Ng with the goal of giving life-changing learning experiences to students all around the world. In the modern day, Coursera is a worldwide online learning platform that provides anybody, anywhere with access to online courses and degrees from top institutions and corporations.

Join Now

Automating Real-World Tasks with Python Week 01 Quiz Answers

Assignment 01: Automating Real-World Tasks with Python Coursera Quiz Answers

#!/usr/bin/env python3

import os
from PIL import Image

old_path = os.path.expanduser(‘~’) + ‘/images/’
new_path = ‘/opt/icons/’

for image in os.listdir(old_path):
if ‘.’ not in image[0]:
img = Image.open(old_path + image)
img.rotate(-90).resize((128, 128)).convert(“RGB”).save(new_path + image.split(‘.’)[0], ‘jpeg’)
img.close()

Automating Real-World Tasks with Python Week 02 Quiz Answers

Assignment 02: Automating Real-World Tasks with Python Coursera Quiz Answers

#! /usr/bin/env python3
import os
import requests
BASEPATH = ‘/data/feedback/’
folder = os.listdir(BASEPATH)
list = []
for file in folder:
with open(BASEPATH + file, ‘r’) as f:
list.append({“title”:f.readline().rstrip(“\n”),
“name”:f.readline().rstrip(“\n”),
“date”:f.readline().rstrip(“\n”),
“feedback”:f.read().rstrip(“\n”)})
for item in list:
resp = requests.post(‘http://104.198.212.144/feedback/’, json=item)
if resp.status_code != 201:
raise Exception(‘POST error status={}’.format(resp.status_code))
print(‘Created feedback ID: {}’.format(resp.json()[“id”]));

Automating Real-World Tasks with Python Week 03 Quiz Answers

Assignment 03: Automating Real-World Tasks with Python Coursera Quiz Answers

#!/usr/bin/env python3

import collections
import json
import locale
import mimetypes
import os.path
import reports
import emails
import sys

def load_data(filename):
“””Loads the contents of filename as a JSON file.”””
with open(filename) as json_file:
data = json.load(json_file)
return data

def format_car(car):
“””Given a car dictionary, returns a nicely formatted name.”””
return “{} {} ({})”.format(
car[“car_make”], car[“car_model”], car[“car_year”])

def process_data(data):
“””Analyzes the data, looking for maximums.
Returns a list of lines that summarize the information.
“””
locale.setlocale(locale.LC_ALL, ‘en_US.UTF8’)
max_sales = {“total_sales”: 0}
max_revenue = {“revenue”: 0}
car_year_sales = collections.defaultdict(int)
for item in data:
# We need to convert “$1234.56” into 1234.56
item_price = locale.atof(item[“price”].strip(“$”))
item_revenue = item[“total_sales”] * item_price
if item_revenue > max_revenue[“revenue”]:
item[“revenue”] = item_revenue
max_revenue = item

if item[“total_sales”] > max_sales[“total_sales”]:
max_sales = item
car_year_sales[item[“car”][“car_year”]] += item[“total_sales”]

max_car_sales_year = (0,0)
for year, sales in car_year_sales.items():
if sales > max_car_sales_year[1]:
max_car_sales_year = (year,sales)
summary = []
summary.append(“The {} generated the most revenue: ${}”.format(
format_car(max_revenue[“car”]), max_revenue[“revenue”]))
summary.append(“The {} had the most sales: {}”.format(
format_car(max_sales[“car”]), max_sales[“total_sales”]))
summary.append(“The most popular year was {} with {} sales.”.format(
max_car_sales_year[0], max_car_sales_year[1]))
return summary

def cars_dict_to_table(car_data):
“””Turns the data in car_data into a list of lists.”””
table_data = [[“ID”, “Car”, “Price”, “Total Sales”]]
for item in car_data:
table_data.append([item[“id”], format_car(item[“car”]), item[“price”], item[“total_sales”]])
return table_data

def main(argv):
data = load_data(os.path.expanduser(‘~’) + “/car_sales.json”)
summary = process_data(data)

# Generate a paragraph that contains the necessary summary
paragraph = “<br/>”.join(summary)
# Generate a table that contains the list of cars
table_data = cars_dict_to_table(data)
# Generate the PDF report
title = “Sales summary for last month”
attachment = “/tmp/cars.pdf”
reports.generate(attachment, title, paragraph, table_data)

# Send the email
sender = “[email protected]
receiver = “{}@example.com”.format(os.environ.get(‘USER’))
body = “\n”.join(summary)
message = emails.generate(sender, receiver, title, body, attachment)
emails.send(message)

if __name__ == “__main__”:
main(sys.argv);

Automating Real-World Tasks with Python Week 04 Quiz Answers

Assignment 04: Automating Real-World Tasks with Python Coursera Quiz Answers

Download Blank.tif

Changeimage.py

#!/usr/bin/env python3

import os
from PIL import Image

path = os.path.expanduser(‘~’) + ‘/supplier-data/images/’

for image in os.listdir(path):
if ‘.tiff’ in image and ‘.’ not in image[0]:
img = Image.open(path + image)
img.resize((600, 400)).convert(“RGB”).save(path + image.split(‘.’)[0] + ‘.jpeg’ , ‘jpeg’)
img.close()

emails (3).py;

#!/usr/bin/env python3

import email.message
import mimetypes
import os.path
import smtplib

def generate_email(sender, recipient, subject, body, attachment_path):
“””Creates an email with an attachement.”””
# Basic Email formatting
message = email.message.EmailMessage()
message[“From”] = sender
message[“To”] = recipient
message[“Subject”] = subject
message.set_content(body)

# Process the attachment and add it to the email
attachment_filename = os.path.basename(attachment_path)
mime_type, _ = mimetypes.guess_type(attachment_path)
mime_type, mime_subtype = mime_type.split(‘/’, 1)

with open(attachment_path, ‘rb’) as ap:
message.add_attachment(ap.read(),
maintype=mime_type,
subtype=mime_subtype,
filename=attachment_filename)

return message

def send_email(message):
“””Sends the message to the configured SMTP server.”””
mail_server = smtplib.SMTP(‘localhost’)
mail_server.send_message(message)
mail_server.quit()

def generate_error_report(sender, recipient, subject, body):

message = email.message.EmailMessage()
message[“From”] = sender
message[“To”] = recipient
message[“Subject”] = subject
message.set_content(body)

return message;

example_upload.py

#!/usr/bin/env python3
import requests

# This example shows how a file can be uploaded using
# The Python Requests module

url = “http://localhost/upload/”
with open(‘/usr/share/apache2/icons/icon.sheet.png’, ‘rb’) as opened:
r = requests.post(url, files={‘file’: opened})

health_check.py

#!/usr/bin/env python3

import os
import shutil
import psutil
import socket
from emails import generate_error_report, send_email
import time

def check_cpu_usage():
“””Verifies that there’s enough unused CPU”””
usage = psutil.cpu_percent(1)
return usage > 80

def check_disk_usage(disk):
“””Verifies that there’s enough free space on disk”””
du = shutil.disk_usage(disk)
free = du.free / du.total * 100
return free > 20

def check_available_memory():
“””available memory in linux-instance, in byte”””
available_memory = psutil.virtual_memory().available/(1024*1024)
return available_memory > 500

def check_localhost():
“””check localhost is correctly configured on 127.0.0.1″””
localhost = socket.gethostbyname(‘localhost’)
return localhost == ‘127.0.0.1’

if check_cpu_usage():
error_message = “CPU usage is over 80%”
elif not check_disk_usage(‘/’):
error_message = “Available disk space is less than 20%”
elif not check_available_memory():
error_message = “Available memory is less than 500MB”
elif not check_localhost():
error_message = “localhost cannot be resolved to 127.0.0.1”
else:
pass

# send email if any error reported
if __name__ == “__main__”:
try:
sender = “[email protected]
receiver = “{}@example.com”.format(os.environ.get(‘USER’))
subject = “Error – {}”.format(error_message)
body = “Please check your system and resolve the issue as soon as possible”
message = generate_error_report(sender, receiver, subject, body)
send_email(message)
os.mkdir(str(int(time.time())))
except NameError:
pass

report_email (2).py

#!/usr/bin/env python3

import reports
import emails
import os
from datetime import date

BASEPATH_SUPPLIER_TEXT_DES = os.path.expanduser(‘~’) + ‘/supplier-data/descriptions/’
list_text_files = os.listdir(BASEPATH_SUPPLIER_TEXT_DES)

report = []

def process_data(data):
for item in data:
report.append(“name: {}<br/>weight: {}\n”.format(item[0], item[1]))
return report

text_data = []
for text_file in list_text_files:
with open(BASEPATH_SUPPLIER_TEXT_DES + text_file, ‘r’) as f:
text_data.append([line.strip() for line in f.readlines()])
f.close()

if __name__ == “__main__”:

summary = process_data(text_data)

# Generate a paragraph that contains the necessary summary
paragraph = “<br/><br/>”.join(summary)

# Generate the PDF report
title = “Processed Update on {}\n”.format(date.today().strftime(“%B %d, %Y”))
attachment = “/tmp/processed.pdf”

reports.generate_report(attachment, title, paragraph)

# Send the email
subject = “Upload Completed – Online Fruit Store”
sender = “[email protected]
receiver = “{}@example.com”.format(os.environ.get(‘USER’))
body = “All fruits are uploaded to our website successfully. A detailed list is attached to this email.”
message = emails.generate_email(sender, receiver, subject, body, attachment)
emails.send_email(message)

reports (1).py

#!/usr/bin/env python3

from reportlab.platypus import SimpleDocTemplate
from reportlab.platypus import Paragraph, Spacer, Image
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib import colors

def generate_report(filename, title, additional_info):
styles = getSampleStyleSheet()
report = SimpleDocTemplate(filename)
report_title = Paragraph(title, styles[“h1”])
report_info = Paragraph(additional_info, styles[“Normal”])
empty_line = Spacer(1,20)
report.build([report_title, empty_line, report_info]);

run.py

#! /usr/bin/env python3

import os
import requests

BASEPATH_SUPPLIER_TEXT_DES = os.path.expanduser(‘~’) + ‘/supplier-data/descriptions/’
list_text_files = os.listdir(BASEPATH_SUPPLIER_TEXT_DES)

BASEPATH_SUPPLIER_IMAGE = os.path.expanduser(‘~’) + ‘/supplier-data/images/’
list_image_files = os.listdir(BASEPATH_SUPPLIER_IMAGE)
list_images = [image_name for image_name in list_image_files if ‘.jpeg’ in image_name]

list = []
for text_file in list_text_files:
with open(BASEPATH_SUPPLIER_TEXT_DES + text_file, ‘r’) as f:
data = {“name”:f.readline().rstrip(“\n”),
“weight”:int(f.readline().rstrip(“\n”).split(‘ ‘)[0]),
“description”:f.readline().rstrip(“\n”)}

for image_file in list_images:
if image_file.split(‘.’)[0] in text_file.split(‘.’)[0]:
data[‘image_name’] = image_file

list.append(data)

for item in list:
resp = requests.post(‘http://127.0.0.1:80/fruits/’, json=item)
if resp.status_code != 201:
raise Exception(‘POST error status={}’.format(resp.status_code))
print(‘Created feedback ID: {}’.format(resp.json()[“id”]))

supplier_image_upload.py

#!/usr/bin/env python3

import requests
import os

# This example shows how a file can be uploaded using
# The Python Requests module
url = “http://localhost/upload/”
IMAGE_DIR = os.path.expanduser(‘~’) + ‘/supplier-data/images/’
list_image = os.listdir(IMAGE_DIR)
jpeg_images = [image_name for image_name in list_image if ‘.jpeg’ in image_name]

for image in jpeg_images:
with open(IMAGE_DIR + image, ‘rb’) as opened:
r = requests.post(url, files={‘file’: opened});

Review:

Based on our knowledge, we urge you to enroll in this course so you can pick up new skills from specialists. It will be worthwhile, we trust.

Leave a Comment