У меня чуть более 2000 файлов .txt, которые мне нужно преобразовать в файлы .csv. Каждый из них последовательно помечен (например, nstar0001.txt, nstar0002.txt и т. д.). Я искал ответы в нескольких местах, но часто решения для Python2.x или используют устаревшие библиотеки. Каждый звездный файл имеет 7 столбцов данных, которые я хочу пометить при преобразовании в формат csv.
Вот моя последняя попытка:
import csv
import os
import itertools
##Convert all nstar####.txt files to csv
stars = int(input("Enter the TOTAL number of stars (including 'bad' stars):"))
k = 1
while k < stars + 1:
if k < 10:
q = 'nstar' + '0' + '0' + '0' + str(k) + '.txt'
r = 'nstar' + '0' + '0' + '0' + str(k) + '.csv'
with open(q, 'rb') as in_file:
stripped = (line.strip() for line in in_file)
lines = (line for line in stripped if line)
grouped = itertools.izip(*[lines] * 7)
with open(r, 'wb') as out_file:
writer = csv.write(out_file)
writer.writerow(('jd', 'mag', 'merr', 'id', 'cerr', 'serr', 'perr'))
writer.writerows(grouped)
Это было заимствовано из другого вопроса StackOverflow и немного изменено в соответствии с моими потребностями. Однако при запуске я получаю
AttributeError: module 'itertools' has no attribute 'izip'
Я знаю, что этот цикл работает только для первых нескольких файлов, но просто хотел, чтобы он работал, прежде чем запускать его для всех файлов.
izip
находится в Python-2.x. Используйтеzip
на Python-3.x. Этот пост SO может помочь вам stackoverflow .com/questions/32659552/ или вы можете попробовать это на github github.com/ nschloe/matplotlib2tikz/issues/20 - person alvits   schedule 15.07.2016