Обязательно укажите lineterinator='\n'
при создании записи; в противном случае лишняя пустая строка может быть записана в файл после каждой строки данных, когда источники данных из другого файла csv ...
Вот мое решение:
with open('csvfile', 'a') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
for i in range(0, len(data)):
spamwriter.writerow(data[i])