Attachment 'notepickle.py'

Download

   1 #!/usr/bin/env python
   2 # coding: utf
   3 '''
   4 Записная книжка. В списке хранятся различные объекты Python, которые можно в него добавлять с клавиатуры (используется input()). Напишите программу, которая сохраняет ввод в файл, если видит специальную завершающую последовательность, и восстанавливает данные оттуда при последующем запуске.
   5 
   6     Подсказка: input() — очень опасная функция, она выполняет eval() от введённой строки, следовательно, если вы определите функцию Quit() в программе, а потом введёте Quit() со стандартного ввода, то input() эту функцию выполнит!
   7 
   8     Ввести ещё несколько функций, например, List(начало, конец) для просмотра пронумерованного списка (если параметры не указаны — всего) и Delete(начало, конец)
   9 '''
  10 
  11 import pickle,os
  12 
  13 Notes,NoteName=[],"Notes.data"
  14 
  15 if os.path.exists(NoteName):
  16     NoteFile=file(NoteName)
  17     Notes=pickle.load(NoteFile)
  18     NoteFile.close()
  19 
  20 def Quit():
  21     global Cont, Data
  22     Cont,Data=False,False
  23 
  24 def List(start=0,end=None):
  25     global Data
  26     if end is None: end=len(Notes)
  27     for i in xrange(start,end):
  28         print "{0:3} {1}".format(i,Notes[i])
  29     Data=False
  30 
  31 def Delete(pos):
  32     global Data
  33     del Notes[pos]
  34     Data=False
  35 
  36 Cont=True
  37 
  38 while Cont:
  39     Data=True
  40     Obj=input("> ")
  41     if Data: Notes.append(Obj)
  42 
  43 NoteFile=file(NoteName,"w")
  44 pickle.dump(Notes,NoteFile)
  45 NoteFile.close()
  46     

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

You are not allowed to attach a file to this page.