2015-10-11 5 views
-6
import os 

books = open(os.path.expanduser("~/Desktop/books.txt")).read() 
b= books.split('\n') 
del b[-1] 
book={} 
for i in b: 
    b1=i.split('\t') 
    book[b1[0]]=[b1[1],b1[2],b1[3]] 

def all_book(): 

    print "The Book List" 
    books = open(os.path.expanduser("~/Desktop/books.txt")) 
    print books.read() 

def add_book(): 

    print "Registering New Book" 
    books = open(os.path.expanduser("~/Desktop/books.txt")) 
    name = raw_input("Title: ") 
    author= raw_input("Author Name: ") 
    publisher =raw_input("Publisher: ") 
    n= int(b1[0]) 
    n1 = n+1 
    newb= [str(n1), '\t', name, '\t', author,'\t', publisher] 
    books.writelines(newb) #Adding file to the list 
    newb = {} 
    newb[n1]=[name, author, publisher] 
    print 'A New Book Added!' 
    return newb 

def del_book(): 

    print "Deleting Books" 
    delnum = str(raw_input("Registered Number:")) 
    if delnum in book: 
     del book[delnum] 
    else: 
     print delnum, "Not Found" 


def show_menu(): 

    print ''' 
    1) add new 
    2) all show 
    3) delete 
    4) search 
    5) Save/out 
    ''' 
    menu_choice = raw_input('what --> ') 
    if menu_choice == '1': 
      add_book() 
    elif menu_choice == '2': 
      all_book() 
    elif menu_choice == '3': 
      del_book() 

show_menu() 
+0

add_book() здесь не работает. Я пробовал в течение 2 часов и не смог ..ha newb = [str (n1), '\ t', name, '\ t', author, '\ t', publisher] books.writelines (newb) # Добавление файла в список –

+0

Исправьте отступ, сообщите нам сообщение об ошибке, если оно есть, и используйте более описательное название! – cdonts

+0

@Naeun Kim: для синтаксической раскраски, отступ каждой строки (дополнительно) 4 пробела. Пожалуйста, опишите, что не работает. –

ответ

0

open() default открыть файл как прочитанный, и поэтому вы не можете записать свою новую книгу в текстовый файл.

1
books = open(os.path.expanduser("~/Desktop/books.txt")).read() 

Ваша ошибка здесь. Если вы не укажете режим открытия файла, Python по умолчанию будет «читать», то есть вы не сможете его записать. Правильный синтаксис для открытия файла для записи является:

books = open('file', 'w') 

This page имеет таблицу режимов доступа к файлам вниз страницы.

Смежные вопросы