====== Kurs języka Python - Lista 8. ====== ===== Zadanie 1. ===== ===== Zadanie 2. ===== from optparse import OptionParser import dbm import sys def main(): parser = OptionParser() parser.add_option("-f", "--file", type="string", dest="file") parser.add_option("-d", "--delete", type="string", dest="delete") parser.add_option("-a", "--add", type="string", dest="add") parser.add_option("-e", "--edit", type="string", dest="add") parser.add_option("-b", "--borrowed", action="store_true", dest="borrowed", default=False) parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False) parser.add_option("-p", "--print", action="store_true", dest="display", default=False) (options, args) = parser.parse_args() if not options.file: if options.verbose: print "No file specified" sys.exit(1) try: db = dbm.open(options.file, "c") except: if options.verbose: print "Cannot open file %s." % options.file sys.exit(1) try: if options.display: for title in db.keys(): if options.borrowed: tracks, author, whohas = eval(db[title]) if whohas: print "Author: %s, Title: %s. Wypozyczone przez: %s." % (author, title, whohas) else: tracks, author, whohas = eval(db[title]) print "Author: %s, Title: %s" % (author, title) for n,i in enumerate(tracks.split("\\n")): print "\t%02d. %s" % (n+1, i) if whohas: print "Wypozyczone przez %s" % whohas sys.exit(0) if options.add: vals = (title, tracks, author, whohas) = options.add.split(";") if options.verbose: print "Adding: ", vals db[title] = repr((tracks, author, whohas)) sys.exit(0) if options.delete: try: del db[options.delete] if options.verbose: print "deleted %s" % options.delete except: if options.verbose: print "%s nonexistent" % options.delete sys.exit(0) except: if options.verbose: print "An exception occured" sys.exit(1) label .end if __name__ == "__main__": main() ===== Zadanie 3. ===== {{tag>[listy_zadan]}}