質問編集履歴

2

完成したコードを追記

2018/09/18 22:00

投稿

Yukiya025
Yukiya025

スコア86

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,35 @@
125
125
 
126
126
 
127
127
  よろしくお願いしますorz
128
+
129
+
130
+
131
+ # できましたー!
132
+
133
+ キリル文字はutf-8だと文字化けするので、`utf-8-sig`を使用。
134
+
135
+
136
+
137
+
138
+
139
+ ```python
140
+
141
+ import csv
142
+
143
+ f = open('26and1.txt', 'r', encoding = 'utf-8-sig')
144
+
145
+
146
+
147
+ with open('26and1.csv', 'w', encoding = 'utf-8-sig') as file:
148
+
149
+ for line in f:
150
+
151
+ data = line.split()
152
+
153
+ for n in range(0, len(data)):
154
+
155
+ writer = csv.writer(file, lineterminator = '\n')
156
+
157
+ writer.writerow([data[n]])
158
+
159
+ ```

1

コード改善。しかし5つしかcsvファイルに書き込まれない

2018/09/18 22:00

投稿

Yukiya025
Yukiya025

スコア86

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,9 @@
26
26
 
27
27
  # 実現したいこと
28
28
 
29
+ .txtの内容を1単語ずつ.csvファイルに書き込みたい。なんとかcsvファイルに書き込めるまで改善できましたが、なぜか最初の5単語しかcsvファイルに書き込まれていません。
30
+
29
- .txt内容を1単語ずつ.csvファイルに書き込たい。
31
+ すべての単語csvファイルに書き込めるようにしたいです
30
32
 
31
33
 
32
34
 
@@ -80,39 +82,45 @@
80
82
 
81
83
 
82
84
 
83
- **私が考えたコード (だけど動かない)**
85
+ **私が考えたコード (なぜリスト0-4しかcsvに書き込まれない)**
84
86
 
85
87
  ```python
86
88
 
87
89
  import csv
88
90
 
89
- f = open('12and1.txt', 'r', encoding = 'utf-8')
91
+ f = open('26and1.txt', 'r', encoding = 'utf-8-sig')
90
92
 
93
+
94
+
91
- with open('12and1.csv','w+',newline='', encoding = 'utf-8'):
95
+ with open('26and1.csv', 'w') as file:
92
96
 
93
97
  for line in f:
94
98
 
95
- print(line)
99
+ # print(line)
96
100
 
97
- sp_word = line.split()
101
+ data = line.split()
98
102
 
99
- print(sp_word)
103
+ # print(data[0:2])
100
104
 
101
- sp_word.writerow()
105
+ for n in range(0, 103):
102
106
 
107
+ writer = csv.writer(file, lineterminator = '\n')
108
+
103
- pass
109
+ writer.writerow([data[n]])
104
110
 
105
111
  ```
106
112
 
107
113
 
108
114
 
115
+ **出力結果**
116
+
117
+ ![コード出力](a16b0338c84aa8684bd55f28a8dbeea3.png)
118
+
119
+
120
+
109
121
  # 現状
110
122
 
111
- - `sp_word`がリスト形式なっているcsvファイルに書き込ないのはわかる
123
+ - 単語数は103個あるはずなの0~4までしかcsvファイルに書き込まれていない。
112
-
113
- - `sp_word[n]`でcsvに書き込む場合for文の書き方がどうなるのかがわからない。
114
-
115
- - そもそもcsvファイルに書き込むときのwith文&for文の扱いがわからない。
116
124
 
117
125
 
118
126