2015-04-02 3 views
0

Что касается модуля CSV в Python:Python CSV: выбрать только определенные заголовки столбцов

Пример - содержание первого файла:

file1.csv, file2.csv, header1, header2 
file3.csv, file4.csv, header1, header2, header5 
file5.csv, file6.csv, header2 

я прочитал первый файл (file1.csv) и необходимость только для экспорта столбцов с заголовками 1 и 2.

Для следующего файла (file3.csv) мне нужно экспортировать только заголовок1, header2 и header5 в файл file4.csv.

У меня есть массив (myParameters = строка ["targetcolumns"] со всеми именами заголовков в нем, и мне нужно как-то петлить, создавая строки, записывая их в файл и продолжая следующую строку.

Я понятия не имею, как это сделать

Проблема заключается в том, что иногда мне нужно 4 заголовки, в следующий раз только один, ...

ответ

0

Предполагая, что у вас есть словарь с. {заголовок: значение} для в каждом ряду вы можете просто:

for row in rows: 
    csv.writerow([row[h] for h in myParameters]) 

Тогда для каждого файла myParameters будут отличаться.

0
import csv 
f = open("somefile.txt", "r") 
for line in f: 
    l = line.split() 
    f1= l[0] 
    f2 = l[1] 
    headers = l[2:] 
    file2 = open(f2, "r") 
    for h in headers: 
     file2.write(','.join(headers) + '\n') 
    with open(f1, "r") as filename: 
     r = csv.DictReader(filename) 
     for x in r: 
      out = [] 
      for h in headers: 
       out.append(x[h]) 
      file2.write(','.join(out) + '\n') 
+0

Почему бы вам не использовать csvwriter, чтобы обеспечить корректное форматирование вывода, разделителя, цитирования и т. Д.? – AChampion

Смежные вопросы