回答編集履歴
1
コード修正
answer
CHANGED
@@ -3,32 +3,41 @@
|
|
3
3
|
ループは1回で済みますし、メモリも1行分しか必要ありません。
|
4
4
|
|
5
5
|
```Python
|
6
|
+
fin = open('inp.csv','r')
|
6
|
-
|
7
|
+
fok = open('ok.csv','w') # 合格
|
8
|
+
fng = open('ng.csv','w') # 不合格
|
7
9
|
|
8
|
-
|
10
|
+
# 現在判定対象のファイル名、条件'1'ありか、詳細`succeed`ありか
|
9
|
-
|
11
|
+
file,is_one,is_succeed = '',False,False
|
10
12
|
|
11
|
-
with open('inp.csv','r') as fr:
|
12
|
-
|
13
|
+
line = fin.readline().strip()
|
13
|
-
|
14
|
+
while line:
|
14
|
-
|
15
|
+
f,no,desc = line.split(',') # ファイル名,条件,詳細
|
15
|
-
|
16
|
+
line = fin.readline().strip()
|
16
17
|
|
17
|
-
|
18
|
+
# ファイル名の切り替わり
|
18
|
-
|
19
|
+
# 現在判定中ファイル名の処理
|
19
|
-
|
20
|
+
if file != f:
|
20
|
-
|
21
|
+
if len(file) > 0:
|
21
|
-
|
22
|
+
if (not is_one) and is_succeed:
|
22
|
-
|
23
|
+
fok.write(file+'\n')
|
24
|
+
else:
|
25
|
+
fng.write(file+'\n')
|
23
|
-
|
26
|
+
file,is_one,is_succeed = f,False,False
|
24
27
|
|
25
|
-
|
28
|
+
if no == '1':
|
26
|
-
|
29
|
+
is_one = True
|
27
|
-
|
30
|
+
if desc == 'succeed':
|
28
|
-
|
31
|
+
is_succeed = True
|
32
|
+
fin.close()
|
29
33
|
|
30
|
-
|
34
|
+
# 最後の行
|
31
|
-
|
35
|
+
if len(file) > 0:
|
32
|
-
if
|
36
|
+
if (not is_one) and is_succeed:
|
33
|
-
|
37
|
+
fok.write(file+'\n')
|
38
|
+
else:
|
39
|
+
fng.write(file+'\n')
|
40
|
+
|
41
|
+
fok.close()
|
42
|
+
fng.close()
|
34
43
|
```
|