0

サンプルの CSV ファイルは次のようになります。

aa  danny  james    
1   3      6    

aa  bla h  mno  
1   3      6    

aa  danny  james    
1   10     15   

この CSV ファイルを読み込んで、次の形式で出力したいと思います。

line number  james  danny
2            6      3
7            15     10

re.search を使用して、「Danny」という値を持つ要素の検索を開始しようとしましたが、エラーとして出てきました。

import csv, re

file_location=r'D:\\'

spamReader = csv.reader(open(file_location))
for row in spamReader:
    if re.search('Danny', row):
        print(row)

目的の出力を得るために辞書などを使用する必要があるかどうかはわかりません。

4

1 に答える 1

0

これは特に洗練された解決策ではありませんが、私が思いついた最も簡単な方法でした。

>>> with open('test.test') as f:
...     num_to_scores = {}
...     for linenum, line in enumerate(f):
...         splitline = line.split()
...         if 'danny' in line and 'james' in line:
...             store_next_vals = True
...             dannyloc, jamesloc = splitline.index('danny'), splitline.index('james')
...         else:
...             if store_next_vals:
...                 num_to_scores[linenum] = {"james":splitline[jamesloc], "danny":splitline[dannyloc]}
...                 store_next_vals = False
>>> with open('out.test', 'w') as f:
...     f.write('line number,james,danny\n')
...     for linenum in num_to_scores:
...         f.write('%d,%s,%s\n' % (linenum, num_to_scores[linenum]['james'], num_to_scores[linenum]['danny']))
>>> print open('out.test').read()
line number,james,danny
1,6,3
7,15,10
于 2012-04-16T20:47:04.520 に答える