如何在 Python 中将字符串列表写入文件?

How do I write a list of strings to a file in Python?

提问人:user2954167 提问时间:11/5/2013 最后编辑:shad0w_wa1k3ruser2954167 更新时间:11/5/2013 访问量:111

问:

这是我的代码:

from random import random

f = open('Attractors1.txt', 'w')
for i in range(10):
    theta = (3.14/2)*random()
f.write(str(theta))

我正在尝试创建一个包含 10 个 theta 值的列表,以便我可以在另一个程序中调用它们,但我认为这些对象没有正确写入。我怎么知道我是否在写?每当我运行代码并执行 f.read() 时,我都会收到一个错误,说文件未打开。

蟒蛇 python-2.7 file-io

评论

0赞 user2954167 11/5/2013
非常感谢!这是我第一次尝试写入文件,我很难弄清楚我在做什么

答:

3赞 Eevee 11/5/2013 #1

您无法从以只写模式打开的文件。:)read

由于你不是在循环中写作,所以你实际上只会吐出一个数字。即使你解决了这个问题,你也会在一行中得到一堆数字,因为你没有添加换行符。 不像..writeprint

此外,在处理文件时使用也是一个好主意,以确保文件在您认为应该关闭的时候关闭。with

所以试试这个:

import math
from random import random

with open('Attractors1.txt', 'w') as f:
    for i in range(10):
        theta = (math.PI / 2) * random()
        f.write("{0}\n".format(theta))
-1赞 David Yang 11/5/2013 #2
f = open('Attractors1.txt', 'w')
for i in range(10):
  theta = (3.14/2)*random()
f.write(str(theta))
f.close()

然后阅读:

f = open('Attractors1.txt','r')
text = f.read()
print text

编辑:wups被殴打

评论

0赞 Eevee 11/5/2013
这并不能解决 write-outside-loop 问题