回答編集履歴
5
修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
読み込むファイルのエンコーディングはUTF-8であることが前提です。
|
1
|
+
下記読み込むファイルのエンコーディングはUTF-8であることが前提です。
|
2
2
|
|
3
3
|
|
4
4
|
|
4
エンコーディングを指定。
test
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
読み込むファイルのエンコーディングはUTF-8であることが前提です。
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
```
|
2
6
|
|
3
7
|
lines_seen = set()
|
4
8
|
|
5
9
|
outfile = open("out.txt", "w")
|
6
10
|
|
7
|
-
for line in open("in.txt", "r"):
|
11
|
+
for line in open("in.txt", "r", encoding="utf-8"):
|
8
12
|
|
9
13
|
try:
|
10
14
|
|
3
追加(カンマが存在しない行が存在する場合に対応)
test
CHANGED
@@ -2,17 +2,23 @@
|
|
2
2
|
|
3
3
|
lines_seen = set()
|
4
4
|
|
5
|
-
outfile = open("out.txt", "w"
|
5
|
+
outfile = open("out.txt", "w")
|
6
6
|
|
7
|
-
for line in open("in.txt", "r"
|
7
|
+
for line in open("in.txt", "r"):
|
8
8
|
|
9
|
-
|
9
|
+
try:
|
10
10
|
|
11
|
+
# 「1行にカンマは必ず存在する」(この文言だとカンマは1つだけとは限らないので先頭のみ切り出す)
|
12
|
+
|
11
|
-
key, data = line.split(',',1)
|
13
|
+
key, data = line.split(',',1)
|
14
|
+
|
15
|
+
except ValueError:
|
16
|
+
|
17
|
+
print("---カンマが存在しない行を読み込みました。スキップして処理を継続します。---")
|
18
|
+
|
19
|
+
continue
|
12
20
|
|
13
21
|
if key not in lines_seen:
|
14
|
-
|
15
|
-
# カンマ以前の部分(およびカンマ自身)を除いた部分のみ書き出す
|
16
22
|
|
17
23
|
outfile.write(data)
|
18
24
|
|
@@ -20,4 +26,6 @@
|
|
20
26
|
|
21
27
|
outfile.close()
|
22
28
|
|
29
|
+
print("処理が完了しました。")
|
30
|
+
|
23
31
|
```
|
2
f
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
for line in open("in.txt", "r", encoding="utf-8"):
|
8
8
|
|
9
|
-
# カンマは1つだけとは限らない場合もありそうので先頭のみ切り出す
|
9
|
+
# カンマは1つだけとは限らない場合もありそうなので先頭のみ切り出す
|
10
10
|
|
11
11
|
key, data = line.split(',',1)
|
12
12
|
|
1
f
test
CHANGED
@@ -12,6 +12,8 @@
|
|
12
12
|
|
13
13
|
if key not in lines_seen:
|
14
14
|
|
15
|
+
# カンマ以前の部分(およびカンマ自身)を除いた部分のみ書き出す
|
16
|
+
|
15
17
|
outfile.write(data)
|
16
18
|
|
17
19
|
lines_seen.add(key)
|