2013-08-23 3 views
0

В моем сценарии py мне нужно записать данные в файл csv с результатом из пяти столбцов в строке.Запись данных в одну строку csv Python

title:info title title title title  
one  two three four five 
one  two three four five 
title:info title title title title 
one  two three four five 

Я хочу использовать file.write() метод, а не модуль CSV, если это вообще возможно.

for ip in open("list.txt"): 
    with open("data.txt", "a") as csv_file: 
     csv_file.write("\r Title:" + ip + ", Title, Title, Title, Title \r") 
     for line in open("0820-oRG-apflog.txt"): 
      new_line = line.split() 
      #search apflog for correct lines 
      if "blocked" in new_line: 
       if "src="+ip.strip() in new_line: 
        #write columns to new text file & remove headers from lines in files and add commas 
        csv_file.write(ip + ", " + new_line[11].replace("dst=", ", ") + new_line[12].replace("proto=", ", ")) 
        try: 
         csv_file.write(new_line[14].replace("dpt=", ", ")) 
        except IndexError: 
         pass 

Когда я запускаю сценарий, я получаю результат:

title:info 
      title title title title 
one 
      two three four five 

Я пробовал: csv_file.write('%r\n%r\n%r\n' % (one, three, four)) и вариации, но эти данные просто не работает так, как мне нужно это.

Я не знаю, где мой код неправильный. Я думал, что .write() будет записывать данные в одну строку, если не указано иное (из предыдущих применений).

Вопрос: Как сделать .write() одной строки шаблона в одну строку csv и по-прежнему отделять шаблон от разных строк?

Спасибо!

ответ

1

Разделите заднюю линию новой строки с первой строки.

+0

Большое спасибо! По какой-то причине я всегда забываю о завершающей новой строке и сталкиваюсь с той же проблемой! – hjames

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