2015-03-12 2 views
0

Я хочу сделать это в Python.CSV-файл на основе данных других файлов

Даны два файла ввод CSV (data1.csv) и (data2.csv) создать новый файл (sample.csv), что следует за эти требования:

  • data1.csv имеет заголовки в первой строке файла
  • data2.csv имеет заголовки в первой строке файла
  • data1.csv имеет больше столбцов, чем data2.csv

  • sample.csv должны иметь все строки в data1.csv, но ОНЛ у колонны, которые появляются в data2.csv и в порядке их появления в data2.csv

Например:

data1.csv 
h1,h2,h3,h4,h5,h6 
0,1,2,3,4,5 
1,2,3,4,5,6 

data2.csv 
h1,h4,h3,h6 
0,1,2,3 

sample.csv 
h1,h4,h3,h6 
0,3,2,5 
1,4,3,6 

My code: 

    import csv 
    import array 
    import os 

    with open('C:\\Users\\nithin\\Desktop\\data1.csv') as f: 
    r = csv.reader(f, delimiter=',') 
    dict1 = {row[0]: row[1:] for row in r if (row[0]=='h1')} 

    print str(dict1) 

ответ

0

Это делает работу:

import csv 
with open('/tmp/data2.csv') as f: 
    headerList = f.readline().split(",") 
with open('/tmp/data1.csv') as f: 
    r = csv.DictReader(f, delimiter=',') 
    with open('/tmp/sample.csv', 'w') as fout: 
     fout.write(','.join(headerList)) 
     for row in r: 
      lineTab = [row[head.rstrip()] for head in headerList] 
      fout.write(",".join(lineTab)+"\n") 
Смежные вопросы