Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2017 17:33:31

Dmitrii-85
Зарегистрирован: 2017-11-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в файл CSV

Добрый день.

Не бейте сильно, первый день на питоне программирую) Есть файл с логами в csv формате: одна запись в одной ячейке через запятую. Я достаю эти данные, обрабатываю, из множества элементов выбираю только те, что мне интересны. Эти “интересные” данные нужно занести в новый csv-файл. На данный момент написал/нашел в интернете следующую инфу по свой задаче (см. ниже). Но не получается записать данные в csv файл так, что б один элемент массива записывался в следующий столбец. То есть array в ячейку А первой строки, array -> B и т.д.

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

import re
import csv

my_file = open(“log.csv”, “r”)
my_file_new = open(“log_update.csv”, “w”)

line = my_file.readline()
new_log_csv =
while line:
array = re.split(r',', line)
print (array ) #нужные данные печатаются
print (array ) #нужные данные печатаются
new_log_csv = [array , array ]
csv.writer(my_file_new).writerows(new_log_csv)
line = my_file.readline()

my_file.close()
print(“File close: ”, my_file.closed)

my_file_new.close()
print(“File_new close: ”, my_file_new.closed)

Офлайн

#2 Ноя. 23, 2017 20:36:58

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Запись в файл CSV

Dmitrii-85
но получается всё нет то
А что такое “нет то”?
Фильтрация строк обычно проще выглядит чем у вас. см псевдокод ниже.
 with open("in.csv","rt") as fin,open("out.csv","wt") as fout:
    for line in fin:
       if good(line):
          fout.write(line)



Офлайн

#3 Ноя. 24, 2017 09:26:00

Dmitrii-85
Зарегистрирован: 2017-11-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в файл CSV

doza_and
А что такое “нет то”?

Данные или на строки разбиваются, или всё в ячейку А1, А2, А3 и т.д. записываются. Но вот что б один элемент массива в одну ячейку - не получается…

Офлайн

#4 Ноя. 24, 2017 16:35:48

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Запись в файл CSV

 >>>csv_file = 'C:\\test.csv'
>>>a = ['columnA', 'columnB', 'columnC', 'columnD']
>>>with open(csv_file, 'w') as f:
...        string_w = ';'.join(a)
...        f.write(string_w)
    

Отредактировано papuas (Ноя. 24, 2017 16:36:29)

Офлайн

#5 Ноя. 24, 2017 20:10:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Запись в файл CSV

Dmitrii-85
Но вот что б один элемент массива в одну ячейку - не получается…
У вас классика жанра.
1) приведите входной файл
2) приведите выходной файл как он должен получиться
3) приведите выходной файл как он получается у вас и опишите чем вы недовольны.

В текстовых файлах нет ячеек, ваши вопросы непонятны.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version