2016-07-11 9 views
1

私はこれに似たようなCSVを持っています。私は以前に、各セットに2つの値を持つ私のスクリプトで定義されたタプルを持ってCSVをPythonのタプルから追加する

HASH        FILE  USER  HOST 
1C7E2110A55F42F525E196499FF88523 ABC.EXE  TEST1 XYZ 
3B7E2110A55F42F525E196499AA88421 124.TXT  TEST2 SDF 

:リストは、典型的には約10〜50行が含まれています。最初のものはハッシュを含み、2番目のものは別の番号を含みます。例えば:私は私のハッシュを比較する方法を把握しようとしています

hashes = [('1C7E2110A55F42F525E196499FF88523', '4'), ('5A7E2110A55F42F525E196499FF88511', '89')] 

が私のCSVへのタプル、そして両方とも任意のハッシュ値のためのタプルの2番目の値を移入し、「NUMBER」という名前の別の列を追加します私の元のCSVと私のハッシュタプルで。私はCSVに別の列を追加する方法を理解することができますが、それを私のタプルからの適切なデータで埋めることは、私がハングアップしているところです。したがって、上記の例については、私は、付与された...私の最後のCSV出力は次のようになりたいCSVやタプルが大きくなりますが、一例として:

HASH        FILE  USER  HOST NUMBER 
1C7E2110A55F42F525E196499FF88523 ABC.EXE  TEST1 XYZ 4 
3B7E2110A55F42F525E196499AA88421 124.TXT  TEST2 SDF 
+1

ファイルtの列を追加するにはいくつかの質問があります。要するに、新しいファイルに書き込む必要があります:http://stackoverflow.com/questions/11070527/how-to-add-a-new-column-to-a-csv-file-using-python、http: /stackoverflow.com/questions/23682236/add-a-new-column-to-an-existing-csv-file、http://stackoverflow.com/questions/23261852/adding-column-in-csv-python-and -enumerating-it – doctorlove

答えて

1

一つのアプローチ最初の辞書の中にハッシュを読むことです次に、dictを使用して各行に新しい列を追加して、入力csvを出力に書き出します。続き

はあなたのポストの記述に基づいてコードのサンプルです:

import csv 

hashes = [('1C7E2110A55F42F525E196499FF88523', '4'), ('5A7E2110A55F42F525E196499FF88511', '89')] 
hashdata = {} 

for hashentry in hashes: 
    hashdata[hashentry[0]] = hashentry 

with open('input.csv','r') as csvinput: 
    with open('output.csv', 'w') as csvoutput: 
     writer = csv.writer(csvoutput, lineterminator='\n') 
     reader = csv.reader(csvinput) 


     all = [] 
     titlerow = next(reader) 
     titlerow.append('NUMBER') 
     all.append(titlerow) 

     for row in reader: 
      if row[0] in hashdata: 
       row.append(hashdata[row[0]][1]) 
       all.append(row) 
      else: 
       all.append(row) 

     writer.writerows(all) 
関連する問題