I am using the following generator to calculate a moving average:
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)
I can print the generator output, but I can't figure out how to save that output into a text file.
x = (1,2,2,4,1,3)
avg = moving_average(x,2)
for value in avg:
print value
When I change the print line to write to a file, output is printed to the screen, a file is created but it stays empty.
Thanks in advance.
First, open the text file for writing (or append) using the open() function. Second, write to the text file using the write() or writelines() method. Third, close the file using the close() method.
Summary. Use the function open(“filename”,”w+”) for Python create text file. The + tells the python interpreter for Python open text file with read and write permissions. Use the readlines function to read the content of the file one by one.
def generator(howmany):
for x in xrange(howmany):
yield x
g = generator(10)
with open('output.txt', 'w') as f:
for x in g:
f.write(str(x))
with open('output.txt', 'r') as f:
print f.readlines()
output:
>>>
['0123456789']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With