我用python3.4编写了一个python脚本,然后在我的Chromebook上用Tegra K1处理器运行它。
这是代码
def fib(n):
a, b = 1, 1
for i in range(n - 1):
a, b = b, a + b
return a
i = 2
while True:
n = fib(i)
with open('nums', 'w') as f:
f.write(str(n))
print(n)
i += 1
它运行了几分钟,然后我按Ctrl + C关闭它。之后,我检查了名为nums
的书面文件的内容。但发现只有1
被写入其中,但文件大小为5120 bytes
。
为什么文件大小为5120字节?
答案 0 :(得分:0)
循环逻辑似乎不正确:每次只有一个数字要写时,就会打开文件。这是固定版本:
with open('nums', 'w') as f:
i = 2
while True:
n = fib(i)
f.write(str(n))
i += 1
此外,当您按Ctrl+C
暂停脚本时,您可能希望在f.flush()
之后添加另一行f.write
,以确保将更改刷新到磁盘上。< / p>
<强>编辑:强>
或者,正如@tdelaney在评论中提到的那样(谢谢@tdelaney :)),您只需将with open('nums', 'w')
替换为with open('nums', 'wa')
即可使用追加模式。不过这种方法:
答案 1 :(得分:0)
尝试在写循环中完成工作
<p class="lead"><?php echo str_replace(' ', ' ', $aboutus); ?></p>
答案 2 :(得分:0)
你的文件很大的原因是它永远不停地循环,所以当你终止程序时,那里写了很多0
个字节。
这是一个有效的解决方案
def fib(n):
a, b = 1, 1
for i in range(n - 1):
a, b = b, a + b
return a
with open('nums', 'w') as f:
i = 1
while i <= 10:
n = fib(i)
f.write(str(n) + "\n")
i += 1