回答編集履歴

1

ソースコードの訂正

2016/11/15 14:39

投稿

nagaetty
nagaetty

スコア1106

test CHANGED
@@ -2,13 +2,15 @@
2
2
 
3
3
 
4
4
 
5
+ b.csvのリードでEOFまで読んでしまうので、先頭に
6
+
7
+ リードポインタを戻さないと2回目のループができない。
8
+
5
- re.search(columns1[0],columns2[0])
9
+ のが原因のようです。ですのでラフに直すと下記で動くかと思います。
6
10
 
7
11
 
8
12
 
9
13
  ```python
10
-
11
-
12
14
 
13
15
  import csv
14
16
 
@@ -16,37 +18,41 @@
16
18
 
17
19
 
18
20
 
19
- f1 = open('a.csv', 'rt')
21
+ f1 = open("a.csv", "rt")
20
22
 
21
23
  reader1 = csv.reader(f1)
22
24
 
23
- next(reader1)
24
25
 
25
26
 
26
-
27
- f2 = open('b.csv', 'rt')
27
+ f2 = open("b.csv", "rt")
28
28
 
29
29
  reader2 = csv.reader(f2)
30
30
 
31
31
 
32
32
 
33
- f3 = open('c.csv','wt')
33
+ f3 = open("c.csv","wt")
34
34
 
35
- writer = csv.writer(f3, lineterminator='\n')
35
+ writer = csv.writer(f3, lineterminator="\n")
36
36
 
37
37
  writer.writerow(['name'])
38
38
 
39
+ list = []
39
40
 
41
+ for columns2 in reader2:
42
+
43
+ list.append(columns2[0])
40
44
 
41
45
  for columns1 in reader1:
42
46
 
43
- for columns2 in reader2:
47
+ for str in list:
44
48
 
49
+ print(str)
50
+
45
- name = re.search(columns1[0],columns2[0])
51
+ name = re.search(columns1[0],str)
46
52
 
47
53
  if name:
48
54
 
49
- writer.writerow([name])
55
+ writer.writerow([name.group(0)])
50
56
 
51
57
 
52
58
 
@@ -56,4 +62,6 @@
56
62
 
57
63
  f3.close()
58
64
 
65
+
66
+
59
67
  ```