Найти - Пользователи
Полная версия: Формирование файла csv из text
Начало » Python для новичков » Формирование файла csv из text
1
lucidlynx
Коллеги, добрый день.
Я новичек в программировании. Прошу совета.
Есть текствоый файл, в котором есть данные сформированные в одну колонку.
Данные выглядят примерно так:
20180918112820
User1
11
20180918132609
User2
2
20180918151534
User3
1
20180919155328
User4
1

Подскжите как правильно сформировать из этого списка файл в cvs, что бы получилось следующее
20180918112820;User1;11
20180918132609;User2;2
20180918151534;User3;1
20180919155328;User4;1
Заранее спасибо всем.
JOHN_16
У Вас есть текстовой файл с четкой структурой данных - наборы данных группируются по три строчки. Значит чтобы сформировать 1 набор данных нужно считать 3 строки и получить из них 1 строку разделенных разделительным знаком.
Попробуйте
py.user.next
  
>>> import csv
>>> 
>>> text = """\
... 20180918112820
... User1
... 11
... 20180918132609
... User2
... 2
... 20180918151534
... User3
... 1
... 20180919155328
... User4
... 1
... """
>>> 
>>> lst = text.splitlines()
>>> 
>>> with open('file.csv', 'w', newline='') as fout:
...     writer = csv.writer(fout)
...     while lst:
...         writer.writerow(lst[:3])
...         lst = lst[3:]
... 
25
24
24
24
>>> open('file.csv', 'rb').read()
b'20180918112820,User1,11\r\n20180918132609,User2,2\r\n20180918151534,User3,1\r\n20180919155328,User4,1\r\n'
>>>
lucidlynx
Спасибо за совет) но у меня вопрос, как мне передать то что находится в файле, а не строки?
Попробовал так:
import csv
resultfile = “/home/lynx/result.txt”
lst = resultfile.splitlines()
with open('/home/lynx/file.csv', ‘w’, newline='') as fout:
writer = csv.writer(fout)
while lst:
writer.writerow(lst)
lst = lst
Ничего не получилось)
lucidlynx
Разобрлася сам:
 import csv
lst = open("/home/lynx/programming/result.txt").readlines()
with open('/home/lynx/programming/file.csv', 'w', newline='') as fout:
     writer = csv.writer(fout)
     while lst:
         writer.writerow(lst[:3])
         lst1 = lst[3:]
py.user.next
lucidlynx
Разобрлася сам:
 lst1 = lst[3:]
Там не lst1 надо, а lst.

  
ifname = '/home/lynx/result.txt'
ofname = '/home/lynx/file.csv'
 
with open(ifname, encoding='utf-8') as fin:
    lst = list(fin)
 
with open(ofname, 'w', newline='') as fout:
    writer = csv.writer(fout)
    while lst:
        writer.writerow(lst[:3])
        lst = lst[3:]
lucidlynx
Спасибо, это опечатка была)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB