回答編集履歴

1

ついでに

2018/12/29 02:25

投稿

can110
can110

スコア38266

test CHANGED
@@ -57,3 +57,73 @@
57
57
  # file.write(output)
58
58
 
59
59
  ```
60
+
61
+
62
+
63
+ #### ついでに
64
+
65
+ 全行読み取ったデータから行毎に処理するコードを記載してみました。
66
+
67
+ 行毎に読み込み、変換、書き込みするほうが以下よりも簡潔に記載できます。
68
+
69
+ ```Python
70
+
71
+ # 略
72
+
73
+ #number = file.read()
74
+
75
+ number = '-1, 2\n 3,-4\n' # 2行のCSV。末尾にも改行あり
76
+
77
+
78
+
79
+ lines = number.split('\n') # 文字列を改行で区切って行リストに
80
+
81
+
82
+
83
+ # 行毎に処理
84
+
85
+ for line in lines:
86
+
87
+ # 改行のみの空行はとばす
88
+
89
+ line = line.strip()
90
+
91
+ if len(line) <= 0:
92
+
93
+ continue
94
+
95
+
96
+
97
+ # カンマで区切られた数字毎に処理
98
+
99
+ output = ''
100
+
101
+ lst = line.split(',')
102
+
103
+ for s in lst:
104
+
105
+ s = s.strip() # 前後の空白は除去 ' 3'→'3'
106
+
107
+ if len(s) <= 0:# (改行のみなどで生成された)空要素は処理しない
108
+
109
+ continue
110
+
111
+
112
+
113
+ n = int(s) #文字列'-1'を数値-1に
114
+
115
+ if n > 0:
116
+
117
+ output += '1'
118
+
119
+ else:
120
+
121
+ output += '0'
122
+
123
+
124
+
125
+ print(output) # '01' や '10'
126
+
127
+ # file.write(output+'\n')
128
+
129
+ ```