2016-01-28 2 views
2

У меня проблемы с некоторым тестовым кодом. Этот код предназначен для:Нежелательные пустые строки между списками

  • чтения файла CSV
  • взять два входа
  • положить входы в список
  • сделать новый список с содержанием Csv + список входов
  • перезапишите csv новым списком.

    import csv 
    
    input1 = input("input 1") 
    input2 = input("input 2") 
    
    original = [] 
    with open('test.csv', 'r') as f: 
        reader = csv.reader(f) 
        original = list(reader) 
    
    data = [input1,input2] 
    original.append(data) 
    
    with open('test.csv', 'w') as f: 
        writer = csv.writer(f) 
        writer.writerows(original) 
    

Например, если были «кошки» и «собаки» в файле, и я напечатал в «зебры» и «жирафы», я бы ожидать, что в формате CSV, чтобы выглядеть, когда я откройте его в «Блокноте»: link

Однако пустые строки создаются между списками, когда я запускаю код более одного раза, и я не знаю почему. link

Я новичок в Python, и любая помощь приветствуется.

+0

Можете ли вы попытаться внести свой вклад? Например, data = [input1.rstrip(), input2.rstrip()] – user1157751

+0

@ user1157751, который не делает никаких изменений –

ответ

1

Решение:

open('test.csv', 'w', newline='') 

В новых версиях Python csv.Writer теперь обрабатывает символ новой строки, но open также делает. Затем вы должны сообщить open, что он не должен добавлять новую строку при записи в файл. См. API documentation для получения дополнительных пояснений.

+0

спасибо, я думал, что это будет что-то простое. –

+0

@Gabriel Owens, приветствуем, если это решение, вы можете принять его – jlandercy

+0

Какую версию Python вы используете? Когда я попробовал это, я получил 'TypeError: 'newline' - недопустимый аргумент ключевого слова для этой функции'. – train1855

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