Python Invoicer
File handling is an important part of any application.
Python has several functions for creating, reading, updating, and deleting files.
File Handling
The key function for working with files in Python is the open() function.
The open() function takes two parameters; filename, and mode.
There are four different methods (modes) for opening a file:
"r" - Read - Default value. Opens a file for reading, error if the file does not exist
"a" - Append - Opens a file for appending, creates the file if it does not exist
"w" - Write - Opens a file for writing, creates the file if it does not exist
"x" - Create - Creates the specified file, returns an error if the file exists
f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close()
#open and read the file after the appending:
f = open("demofile2.txt", "r")
print(f.read())
In Python, you can assign a formatted print statement to a variable using f-strings (formatted string literals):
ame = "Alice"
age = 30
formatted_string = f"Hello, my name is {name} and I am {age} years old."
Calculate the invoice and print each line out to a file called lastname.txt
==============================
cust_first_name = input("Customer First name: ")
cust_last_name = input("Customer Last name: ")
file_ext = ".txt"
inv_name = cust_last_name + file_ext
f = open(inv_name, "a")
cust_address = input(" Address: ")
cust_city = input(" City: ")
cust_state = input(" State: ")
cust_zip = input(" Zip: ")
print(cust_last_name)
print(cust_address)
items = {"plates" : 3, "cups" : 1, "glasses" : 2}
for x in items:
print(x, items[x])
no_plates = input("Number of Plates: ")
no_cups = input("Number of Cups: ")
no_glasses = input("Number of Glasses: ")
total_plates = int(no_plates) * int(items["plates"])
total_cups = int(no_cups) * int(items["cups"])
total_glasses = int(no_glasses) * int(items["glasses"])
total_charge = int(total_plates) + int(total_cups) + int(total_glasses)
inv_name = cust_first_name + " " + cust_last_name + "\n"
print(inv_name)
f.write(inv_name)
inv_address = cust_address + "\n"
print(cust_address)
f.write(inv_address)
print(cust_city)
inv_city = cust_city + "\n"
f.write(inv_city)
print(cust_state)
inv_state = cust_state + "\n"
f.write(inv_state)
print(cust_zip)
inv_zip = cust_zip + "\n"
f.write(inv_zip)
## line item for plates
price_plates = items["plates"]
inv_plates = f"You Bought {no_plates} number of plates at ${price_plates:.2f} = ${total_plates:.2f} dollars. \n"
f.write(inv_plates)
myplates = "You Bought {} number of plates at {} = {} dollars."
print(myplates.format(no_plates, items["plates"], total_plates))
## line item for cups
price_cups = items["cups"]
inv_cups = f"You Bought {no_cups} number of cups at ${price_cups:.2f} = ${total_cups:.2f} dollars. \n"
f.write(inv_cups)
mycups = " {} number of cups at {} = {} dollars."
print(mycups.format(no_cups, items["cups"], total_cups))
## line item for glasses
price_glasses = items["plates"]
inv_glasses = f"You Bought {no_glasses} number of glasses at ${price_glasses:.2f} = ${total_glasses:.2f} dollars. \n"
f.write(inv_glasses)
myglasses = " {} number of glasses at {} = {} dollars."
print(myglasses.format(no_glasses, items["glasses"], total_glasses))
print('==============================================================')
inv_total = f" Total Amount Due = ${total_charge:.2f} dollars. \n"
f.write("============================================================== \n")
f.write(inv_total)
mytotal = " Total Amount Due = {} dollars."
print(mytotal.format(total_charge))
f.close()
=========================================================
Results
python invoicer.py
Customer First name: John
Customer Last name: Iacovacci
Address: 55 Daffodil Road
City: Stamford
State: CT
Zip: 06903
Iacovacci
55 Daffodil Road
plates 3
cups 1
glasses 2
Number of Plates: 4
Number of Cups: 4
Number of Glasses: 4
John Iacovacci
55 Daffodil Road
Stamford
CT
06903
You Bought 4 number of plates at 3 = 12 dollars.
4 number of cups at 1 = 4 dollars.
4 number of glasses at 2 = 8 dollars.
=========================================================
Total Amount Due = 24 dollars.
C:\WINDOWS\system32>cd /users
C:\Users>cd john
C:\Users\john>cd pyton
The system cannot find the path specified.
C:\Users\john>cd python
C:\Users\john\python>python invoicer.py
Customer First name: John
Customer Last name: Iacovacci
Address: 55 Daffodil Road
City: Stamford
State: CT
Zip: 06903
Iacovacci
55 Daffodil Road
plates 3
cups 1
glasses 2
Number of Plates: 4
Number of Cups: 4
Number of Glasses: 4
John Iacovacci
55 Daffodil Road
Stamford
CT
06903
You Bought 4 number of plates at 3 = 12 dollars.
4 number of cups at 1 = 4 dollars.
4 number of glasses at 2 = 8 dollars.
==============================================================
Total Amount Due = 24 dollars.
Attach code and file to an email

Attach file and send both code and file in email
No comments:
Post a Comment