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

質問編集履歴

2

コード小訂正

2020/07/17 05:17

投稿

fukazume
fukazume

スコア78

title CHANGED
File without changes
body CHANGED
@@ -35,7 +35,7 @@
35
35
 
36
36
  row = []
37
37
  rows = []
38
- source = './data/test_01.csv'
38
+ source = './test_01.csv'
39
39
 
40
40
  for i in range(3):
41
41
  row.append('\'文字列\'')

1

追記

2020/07/17 05:17

投稿

fukazume
fukazume

スコア78

title CHANGED
File without changes
body CHANGED
@@ -13,8 +13,45 @@
13
13
  ###質問
14
14
  意図した通りのCSVを出力する、シングルクォーテーションをエスケープ処理したappendメソッドの文をそのまま下の行に複製し、ダブルクォーテーションに一部変更してCSV出力すると、上記のようにダブルクォーテーションが3つ連なった形でのCSV出力になってしまいます。
15
15
 
16
- このような挙動になる理由を教えていただけますと大変ありがたく存じます。どうぞよろしくお願い申し上げます。
16
+ このような挙動になる理由を教えていただけますと大変ありがたく存じます。
17
17
 
18
+ 期待する出力結果は以下のとおりです。
19
+ ```python
20
+ '文字列',"文字列",
21
+ ```
22
+
23
+
18
24
  ###環境
19
25
  Windows 10
20
- Python 3.8.3
26
+ Python 3.8.3
27
+
28
+ ###追記2020/07/17
29
+ 以下が現象が再現するpythonプログラムとなります。よろしくお願いいたします。
30
+
31
+ ■再現するプログラム
32
+ ```python
33
+ # -*- coding: utf-8 -*-
34
+ import csv
35
+
36
+ row = []
37
+ rows = []
38
+ source = './data/test_01.csv'
39
+
40
+ for i in range(3):
41
+ row.append('\'文字列\'')
42
+ row.append('\"文字列\"')
43
+ row = [] # 行の初期化
44
+ rows.append(row)
45
+
46
+ with open(source, 'w', encoding="UTF-8") as f:
47
+ writer = csv.writer(f, lineterminator='\n')
48
+ writer.writerows(rows)
49
+ ```
50
+
51
+ ■実行結果(CSV出力結果)
52
+ ```csv
53
+ '文字列',"""文字列"""
54
+ '文字列',"""文字列"""
55
+
56
+
57
+ ```