次のジェネレーターを使用して、移動平均を計算しています。
import itertools
from collections import deque
def moving_average(iterable, n=50):
it = iter(iterable)
d = deque(itertools.islice(it, n-1))
d.appendleft(0)
s = sum(d)
for elem in it:
s += elem - d.popleft()
d.append(elem)
yield s / float(n)
ジェネレーターの出力を印刷できますが、その出力をテキスト ファイルに保存する方法がわかりません。
x = (1,2,2,4,1,3)
avg = moving_average(x,2)
for value in avg:
print value
ファイルに書き込むように印刷行を変更すると、出力が画面に出力され、ファイルが作成されますが、空のままです。
前もって感謝します。