带有for循环和列表的Python语法,导出到文本文件

时间:2012-10-09 06:53:01

标签: python for-loop append

  

可能重复:
  Joining List has integer values with python

我在python中遇到for循环和列表的语法问题。我正在尝试导出导出到空格分隔的文本文件的数字列表。

示例:文本文件中应包含的内容 0 5 10 15 20

我正在使用的代码如下,任何想法如何解决这个问题。

f = open("test.txt", "w")
mylist=[]
for i in range(0,20+1, 5):      
    mylist.append(i)
    f.writelines(mylist)

f.close()

4 个答案:

答案 0 :(得分:5)

如果您想使用range()生成数字列表,那么您可以使用此代码:

mylist = map(str, range(0, 20 + 1, 5))
with open("test.txt", "w") as f:
    f.writelines(' '.join(mylist))

map(str, iterable)将对此可迭代对象中的所有元素应用str()

with用于使用context manager定义的方法包装块的执行。这允许封装常见的try...except...finally使用模式以便于重用。它在这种情况下的作用是总是关闭f。最好使用它而不是手动调用f.close()

答案 1 :(得分:4)

试试这个:

mylist = range(0,20+1,5)
f = open("test.txt", "w")
f.writelines(' '.join(map(str, mylist)))
f.close()

答案 2 :(得分:1)

您必须将整数列表转换为字符串 map()上的列表,以使其可以连接。

mylist = range(0,20+1,5)
f = open("test.txt", "w")
f.writelines(' '.join(map(str, mylist)))
f.close()

另见Joining List has Integer values with python

答案 3 :(得分:0)

>>> with open('test.txt', 'w') as f:
...     f.write(' '.join((str(n) for n in xrange(0, 21, 5))))