2016-10-17 2 views
-1

Итак, название объясняет мой вопрос - пожалуйста, посмотрите изображение для уточнения.CSV печатает пустую колонку между столбцами данных

enter image description here

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

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=' ', но, попробовав множество различных вариантов без успеха, я в недоумении.

+0

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

+1

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

ответ

0

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

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

20,,start,,1000,,1002 

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

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

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

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