Прочитайте текстовый файл и создайте CSV-файл в Python - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу прочитать несколько текстовых файлов и создать один CSV-файл.Подобная строка заголовка является обычной, считывает данные из каждого файла и создает одну строку в CSV.

Входной файл похож на.

readme_1006999-111418.html0000664077736200007070000001676613373210077014576

\--------------GENERAL INFO --------------------
CR ID #: 1006999-111418
Product Version: 10.1.10.1.5
Case ID #: 1012440-102118
\--------------Short description----
DS | Cleanup TEST| crashed on after run the admin command
\------ New/Modified files ------
Customer.cpp
input.cpp
output.cpp
\------ Affected executables and libraries ------
classes.jar
info.so
function.so
messageinfo.so

Я хочу выводить как

GENERAL INFO,Short description,Affected executables and libraries
CR ID #: 1006999-111418 Product Version: 10.1.10.1.5 Case ID #: 1012440-102118, DS | Cleanup TEST| crashed on after run the admin command,Customer.cpp input.cpp output.cpp,classes.jar info.so function.so messageinfo.so

на следующей строке я хочу три строки под "ОБЩАЯ ИНФОРМАЦИЯ", затем запятая, то же самое для других заголовков.

Я пробовал небольшой код с помощью Google, как я новичок в Python.

import csv
import os
import glob

#for filename in glob.glob(os.path.join('/bd_users/abpwrk1/OM/AM/Lab', '*.txt')):
with open('test.txt', 'r') as in_file:
    stripped = (line.strip() for line in in_file)
    lines = (line.split(",") for line in stripped if line)
    with open('output.csv', 'w') as out_file:
        writer = csv.writer(out_file)
        writer.writerow(('GENERAL INFO', 'Short description','New/Modified files','Affected executables and libraries','Affected executables and libraries','DETAILED INFO','Detailed Problem Description','Solution','Testing Instructions','ADDITIONAL IMPACT','Database Changes','Environment Notes','XPI/Topology Changes'))
       writer.writerows(lines)

Может кто-нибудь, пожалуйста, помогите написать логику, которая будет печатать все строки под заголовком (вложенный ------- заголовок ----) в одной ячейке.

1 Ответ

0 голосов
/ 12 декабря 2018

Попробуйте что-то подобное, надеюсь, это поможет вам

Разбор простого текстового файла в файл CSV с использованием Python

import csv
import itertools

with open('extracted.txt', 'r') as in_file:
    stripped = (line.strip() for line in in_file)
    lines = (line for line in stripped if line)
    grouped = itertools.izip(*[lines] * 3)
    with open('extracted.csv', 'w') as out_file:
        writer = csv.writer(out_file)
        writer.writerow(('title', 'intro', 'tagline'))
        writer.writerows(grouped)
...