Как скомпоновать столбцы .txt файлов в один CSV файл без модуля Pandas?
У меня есть 7 файлов .txt со значениями. Значения записаны в 1 столбец. Количество строк во всех файлах одинаково. Я хочу собрать все файлы в один CSV.
Начало моего кода:
import csv
output_file_name = "./values/values.csv"
csvfile = open(outfilename, "w")
title = "Name,Value,Target,Condition,Dimension,Description,Comments,"
csvfile.write(title)
В первую строку я записал название столбцов, именно в таком порядке должны располагаться данные.
Может кто-нибудь помочь?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
воспользуйтесь стандартным модулем csv:
import csv
filenames = ["1.txt", "2.txt", "3.txt"]
output_file_name = "values.csv"
title = "Name,Value,Target,Condition,Dimension,Description,Comments"
sep = ","
files = [open(f) for f in filenames]
with open(output_file_name, "w") as csvfile:
writer = csv.writer(csvfile, delimiter=sep)
writer.writerow(title.split(sep))
for row in zip(*files):
writer.writerow(map(str.strip, row))
_ = [f.close() for f in files]
PS решение с использованием модуля Pandas было бы гораздо более элегантным...
UPD: для сравнения - решение с использованием Pandas:
import pandas as pd
filenames = ["1.txt", "2.txt", "3.txt", ..., "7.txt"]
output_file_name = "values.csv"
title = "Name,Value,Target,Condition,Dimension,Description,Comments"
sep = ","
(pd.concat([pd.read_csv(f, header=None) for f in filenames], axis=1)
.set_axis(title.split(sep), axis=1)
.to_csv(output_file_name))