Write a class iteminfo to store information of different items like Code, name, price, quantity. Write a program to accept data from user and store it in file. Also provide user the facility of searching and updating data file based on code.
In [12]:
import pickle
import os
class item_info(object):
'''Class to store information of an item.
Attributes:
-code
-name
-price
-quantity
-filename
Methods'''
def __init__(self):
self.code = ''
self.name = ''
self.price = 0
self.quantity = 0
self.filename = ''
def enterData(self):
self.code = raw_input('Enter code: ')
self.name = raw_input('Enter item name: ')
self.price = int(raw_input('Enter item price: '))
self.quantity = int(raw_input('Enter quantity: '))
self.filename = raw_input('Enter file name')
self.saveFile(self.filename)
def saveFile(self,filename):
f = open(filename,'wb')
pickle.dump({'code':self.code,
'name':self.name,
'price':self.price,
'qty':self.quantity},f)
f.close()
def search(self,code,filename):
f = open(filename,'rb+')
t = open('temp.b','wb')
code = raw_input('Enter item code: ')
while True:
try:
a = pickle.load(f)
if a['code']==code:
print 'Found'
for i in a.keys():
print i,a[i]
choice = raw_input('Do you want to edit this data? Y/N')
if choice.lower()=='y':
for i in a.keys():
a[i] = input(i + ': ')
pickle.dump(a,t)
else:
pickle.dump(a,t)
except EOFError:
print 'Done'
f.close()
t.close()
os.remove(filename)
os.rename('temp.b',filename)
In [ ]: