无法从文件' a +'中读取

时间:2018-03-22 07:30:56

标签: python csv

我有一个名为Database的类,它在' a +'中打开一个文件。模式(用于阅读和追加)。它还有使用csv库从文件中追加和读取的方法,如下所示:

class Database():
    def __init__(self, db_filename, *args, **kwargs):
        self._db_file = open(db_filename, 'a+', newline='')
        self._csv_writer = csv.DictWriter(
            self._db_file, fieldnames=self.__FIELDNAMES)
        self._csv_reader = csv.DictReader(
            self._db_file, fieldnames=self.__FIELDNAMES)
    # append
    def save(self, data):
        self._csv_writer.writerow(data)
    # read
    def load(self):
        data = []
        for row in self._csv_reader
            data.append(row)
        return data

问题是save方法工作正常,但load没有。 self._csv_reader 为空。

1 个答案:

答案 0 :(得分:1)

使用a+模式打开文件时,文件流将位于文件末尾。在创建f.seek( 0 )之前,请调用open( ... ),其中f是使用DictReader创建的文件对象。有关此问题的详细讨论,请参阅this question