2015-12-01 4 views
3

Я пытаюсь создать экземпляр csv-записи в методе init класса, и я хочу использовать его из хранилища методов классаToCSV(). По какой-то странной причине это не работает. Никакие данные не записываются в файл, когда я вызываю self.storeToCSV (['test']). В чем причина этого и как я могу это исправить?Как использовать модуль python csv в классе

class postprocessing: 
    def __init__(self,topic): 

     try: 
      os.remove(topic+'.csv') 
     except: 
      pass 

     csvfile = open(topic+'.csv', 'a') 
     self.csvwriter = csv.writer(csvfile, delimiter=';',quotechar='"') 
     self.csvwriter.writerow(['id','url1']) 

    def storeToCSV(self, arg_a):   
     print self.csvwriter.writerow(arg_a) 
+0

Можете ли вы добавить несколько строк, чтобы сделать это рабочей демонстрацией проблемы? Приведенный код должен работать нормально, поэтому его вероятность зависит от того, как вы его используете. – tdelaney

ответ

0

Я думаю, что нужно добавить

csvfile.close() 

после записи данных.

0

Код работает здесь. Вызов
postprocessing('afile').storeToCSV(['1', 'c9.io'])

Заполняет afile.csv с

id;url1 
1;c9.io 

Убедитесь, что вы не считаны из файла, прежде чем объект будет удален автором и файловый объект закрыт, как данные не записываются сразу на диск.
И не закрывайте файл, прежде чем вы закончите писать.

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