CSV печатает пустой столбец между каждым столбцом данных

#python #python-2.7 #csv

#python #python-2.7 #csv

Вопрос:

Итак, заголовок объясняет мой вопрос — пожалуйста, смотрите Изображение для уточнения.

введите описание изображения здесь

Я пробовал исправления из нескольких вопросов здесь, но безрезультатно, так что вот мой код:

 def csv_writer(file_a, file_b):
    with open('Comparison.csv', 'wb') as csv_file:
        writer = csv.writer(csv_file, delimiter=',', escapechar=' ', lineterminator='n', quoting=csv.QUOTE_NONE)
        line = map(compare, file_a.master_list, file_b.master_list)
        for line in line:
            if line != None:
                writer.writerow(line)
            else:
                del line
  

Данные для line строки 6 представляют собой список в следующем формате:
['20,', 'start,', '1000,', '1002'] .

Я предполагаю, что моя проблема связана с escapechar=' ' , но, безуспешно перепробовав множество различных вариантов, я в растерянности.

Комментарии:

1. Вы пробовали открывать файл CSV в текстовом редакторе, а не в Excel? Вызывает ли это ту же проблему?

2. Если в ваших данных и использовании есть запятые QUOTE_NONE , они будут интерпретироваться как разделители.

Ответ №1:

Я считаю, что происходит то, что вы получаете два , символа между каждым элементом данных.

Например, в ['20,', 'start,', '1000,', '1002'] каждый элемент соединяется с a , из-за delimiter=',' опции. Это означает, что , повторяется, и в итоге вы получите:

 20,,start,,1000,,1002
  

Обратите внимание, что между каждым из элементов, которые вы хотите, есть пустой элемент.

Вероятно, вы можете исправить это, заменив delimiter=',' на delimiter='' , поскольку у вас уже есть , символ и вам не нужен другой.

Надеюсь, это поможет!