回答編集履歴
2
表記揺れ
answer
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
複数行書き込むので。
|
49
49
|
|
50
50
|
もう一度書きますが、
|
51
|
-
**レコードの要素数が常に一つなのであれば、
|
51
|
+
**レコードの要素数が常に一つなのであれば、csvモジュールの利用に拘る理由は全く無いです。**
|
52
52
|
|
53
53
|
コードの書き方について
|
54
54
|
---
|
1
追記
answer
CHANGED
@@ -18,6 +18,38 @@
|
|
18
18
|
|
19
19
|
なお、各行一つしかデータを置かないのであれば、**csvモジュールの利用に拘る必要はありません**。
|
20
20
|
|
21
|
+
コメントを受けて
|
22
|
+
---
|
23
|
+
こんな感じで書けます。
|
24
|
+
```Python
|
25
|
+
a_list = []
|
26
|
+
for i in span[:-1]:
|
27
|
+
value = float(i.string)
|
28
|
+
a_list.append([value, ])
|
29
|
+
|
30
|
+
with open('some.csv', 'w') as fout:
|
31
|
+
writer = csv.writer(fout)
|
32
|
+
writer.writerows(a_list)
|
33
|
+
```
|
34
|
+
|
35
|
+
**変更点:**
|
36
|
+
0. **spanではなくspan[:-1]を巡回**
|
37
|
+
データ『応談』が邪魔なのでアドホックに対応。
|
38
|
+
0. **i.stringをfloatにキャスト**
|
39
|
+
数値は数値として扱うのがトラブルが少ないです。
|
40
|
+
ただし誤差が発生するので、どうしてもそれを避けたい場合は文字列でも良いです。
|
41
|
+
0. **a_listにデータを加える際、要素数1のリストにした**
|
42
|
+
csvとして扱う以上は、1レコードに与える内容はシーケンスにしないと。
|
43
|
+
0. **a_listの作成を一つ目のループに移動**
|
44
|
+
ループを分ける必要がないです。
|
45
|
+
0. **with文の利用**
|
46
|
+
一般的にリソースの開閉にはコンテキストマネージャを使うのが常道です。
|
47
|
+
0. **writer.writerowではなくwriter.writerowsを利用**
|
48
|
+
複数行書き込むので。
|
49
|
+
|
50
|
+
もう一度書きますが、
|
51
|
+
**レコードの要素数が常に一つなのであれば、CSVモジュールの利用に拘る理由は全く無いです。**
|
52
|
+
|
21
53
|
コードの書き方について
|
22
54
|
---
|
23
55
|
teratailには、コードを見やすく表示する機能があります。
|