質問するログイン新規登録

回答編集履歴

1

ソースコードの訂正

2016/11/15 14:39

投稿

nagaetty
nagaetty

スコア1106

answer CHANGED
@@ -1,30 +1,34 @@
1
1
  下記の一致の摘出部分がおかしいかと思います。
2
2
 
3
+ b.csvのリードでEOFまで読んでしまうので、先頭に
4
+ リードポインタを戻さないと2回目のループができない。
3
- re.search(columns1[0],columns2[0])
5
+ のが原因のようです。ですのでラフに直すと下記で動くかと思います。
4
6
 
5
7
  ```python
6
-
7
8
  import csv
8
9
  import re
9
10
 
10
- f1 = open('a.csv', 'rt')
11
+ f1 = open("a.csv", "rt")
11
12
  reader1 = csv.reader(f1)
12
- next(reader1)
13
13
 
14
- f2 = open('b.csv', 'rt')
14
+ f2 = open("b.csv", "rt")
15
15
  reader2 = csv.reader(f2)
16
16
 
17
- f3 = open('c.csv','wt')
17
+ f3 = open("c.csv","wt")
18
- writer = csv.writer(f3, lineterminator='\n')
18
+ writer = csv.writer(f3, lineterminator="\n")
19
19
  writer.writerow(['name'])
20
-
20
+ list = []
21
+ for columns2 in reader2:
22
+ list.append(columns2[0])
21
23
  for columns1 in reader1:
22
- for columns2 in reader2:
24
+ for str in list:
25
+ print(str)
23
- name = re.search(columns1[0],columns2[0])
26
+ name = re.search(columns1[0],str)
24
27
  if name:
25
- writer.writerow([name])
28
+ writer.writerow([name.group(0)])
26
29
 
27
30
  f1.close()
28
31
  f2.close()
29
32
  f3.close()
33
+
30
34
  ```