保存(书籍)存货的单独文件

2024-06-28 15:00:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,基本上是一个模拟图书馆,你可以查书,编辑,删除等

在我的程序中,我已将一些默认书籍初始化为如下类:

class BookData:
    def __init__(self):
        self.bookTitle = ''
        self.isbn = ''
        self.author = ''
        self.publisher = ''
        self.dateAdded = ''
        self.quantity = 0.0
        self.wholesale = 0.0
        self.retail = 0.0


def __str__(self):
    return 'Title: {} ISBN: {} Author: {} ' \
           'Publisher: {} Date Added: {} ' \
           'Quantity: {} Wholesale Value: {} ' \
           'Retail Value: {}'.format(self.bookTitle, self.isbn, self.author, self.publisher, self.dateAdded,
                                     self.quantity, self.wholesale, self.retail)

我在程序中存储的一本书的示例:

book0.bookTitle, book0.isbn, book0.author, book0.publisher, book0.dateAdded, book0.quantity, book0.wholesale, book0.retail = "INTRODUCING PYTHON", "978-1-4493-5936-2", "Bill Lubanovic", "O'Reilly Media, Inc.", "11/24/2014", 25, 39.95, 50.00

然后将每本书添加到一个列表中

我想做的是将所有书籍存储到一个单独的文件中,以便在该文件中进行更新和编辑,但我不太明白如何正确打开文件,读取每个部分(如标题、isbn、作者),然后在主程序中将其制作成BookData对象并将其放入列表中

我曾经考虑过使用带逗号的普通.txt文档进行格式化。我不知道像JSON或XML这样的东西是否会让这更容易

Psuedo代码示例:

open(file):
for word in file:
create book with title, author, isbn, etc in file
append to list of books

Tags: 文件self程序编辑quantitypublisherfileauthor
1条回答
网友
1楼 · 发布于 2024-06-28 15:00:58

Python本机支持CSV(逗号分隔值)文件:Python documentation

例如:

import csv
books = []
with open('file.csv', newline = '') as csvfile: 
    reader = csv.reader(csvfile)
    for row in reader:
        book = BookData()
        book.bookTitle = row[0]
        book.isbn = row[1] 

但是,也就是说,将构造函数(ha-ha)更改为一行,然后直接分配它可能更具建设性:

def __init__(self, row):
    self.bookTitle = row[0]

相关问题 更多 >