teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

エスパー回答を追加

2018/06/26 08:40

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -30,4 +30,15 @@
30
30
  ret.csv
31
31
  ```PlainText
32
32
  4,6,8
33
+ ```
34
+
35
+ #### もしかして
36
+ ```Python
37
+ a = ['1\n','2\n','3\n','4\n','5\n'] # テキストをreadlinesなりで読み込んだ。よって末尾に改行がついたまま。
38
+ print(*a,sep='',end='\r\n') # 区切を空文字にしているのになぜか改行してしまう
39
+
40
+ print('↓')
41
+
42
+ a = [l.rstrip() for l in a] # 末尾空白(改行含む)を除去する
43
+ print(*a,sep=' ') # 空白区切で出力する
33
44
  ```

1

回答修正

2018/06/26 08:40

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,8 +1,33 @@
1
1
  こんな感じでできます。
2
2
  [csvモジュール](https://docs.python.org/ja/3/library/csv.html#module-csv)を利用すれば、見出し行や区切り文字の指定など、より柔軟に出力できますが。
3
+
4
+ #### 回答修正
5
+ 行毎のデータを読込、行を抽出、列方向に出力する例です。
3
6
  ```Python
7
+ # 行毎にリストsrcに格納
8
+ with open('inp.csv') as f:
9
+ lines = f.readlines()
10
+ src = [l.rstrip('\r\n') for l in lines]
11
+
12
+ # 1~3行目までを抽出
4
- a = [1,2,3,4,5]
13
+ dst = src[1:4]
14
+
15
+ # 抽出したリストを列方向にカンマ区切りで1行出力
5
16
  with open('ret.csv','w') as f: # .csvで出力
6
- f.write( ','.join([str(v) for v in a])) # リストの各値を文字にして','で連結
17
+ f.write( ','.join([str(v) for v in dst])) # リストの各値を(文字にして)','で連結
7
18
  f.write('\n')
19
+ ```
20
+
21
+ inp.csv
22
+ ```PlainText
23
+ 2
24
+ 4
25
+ 6
26
+ 8
27
+ 10
28
+ ```
29
+
30
+ ret.csv
31
+ ```PlainText
32
+ 4,6,8
8
33
  ```