2013-03-11 50 views
0
def inputbook(): 
    question1 = input("Do you want to input book?yes/no:") 
    if question1 == "yes": 
     author = input("Please input author:") 
     bookname = input("Please input book name:") 
     isbn = input("Please input ISBN code") 
     f = open("books.txt", "a") 
     f.write("\n") 
     f.write(author) 
     f.write(bookname) 
     f.write(isbn) 
     f.close() 
    elif question1 == "no": 
     input("Press <enter>") 
inputbook(); 

所以我有這樣的代碼,當我寫最後一個字符串(ISBN),我想python讀取books.txt文件。我該怎麼做?我會如何讓Python讀取我的文本文件?

+2

您會希望在每個'f.write(..)'之後添加換行符(或其他分隔字符),否則最終會出現一個很長的行,您將無法區分不同的值。您也可以查看[csv](http://docs.python.org/3/library/csv.html)模塊。 – poke 2013-03-11 16:02:16

回答

1

您的打開存在問題,導致其無法讀取。 你需要打開它:

f = open("books.txt", "+r") 

「A」代表追加,所以你將無法使用F讀books.txt。

其次,readlines或readline對於你的代碼來說目前還不是很好的選擇。您需要更新您的寫入方法。由於在.txt文件中,作者,書名和isbn會混淆在一起,並且無法將它們分開。

0
def inputbook(): 

    question1 = raw_input("Do you want to input book? (yes/no):") 

    if question1 == "yes": 
     author = raw_input("Please input author:") 
     bookname = raw_input("Please input book name:") 
     isbn = raw_input("Please input ISBN code:") 
     f = open("books.txt", "a+") 
     f.write("%s | %s | %s\n" % (author, bookname, isbn)) 
     f.close() 

    elif question1 == "no": 
     raw_input("Press <enter>") 
     try: 
      print open('books.txt', 'r').read() 
     except IOError: 
      print 'no book' 

if __name__ == '__main__': 
    inputbook() 
相關問題