回答編集履歴
1
ついでに
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
|
+
```
|