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

Python syntax with for loop and lists, exporting to text file

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Joining List has integer values with python

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

示例:文本文件中应该包含什么0 5 10 15 20

下面是我使用的代码,有什么解决方法吗?

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

f.close()

如果您想使用range()生成您的号码列表,那么您可以使用:

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

map(str, iterable)将把str()应用于这个不可测对象中的所有元素。

with用于用上下文管理器定义的方法包装块的执行,这允许封装通用的try...except...finally使用模式以方便重用。在这种情况下,它总是关闭f。使用它而不是手动调用f.close()是一个很好的实践。


试试这个:

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


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

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

另请参见联接列表中使用python的整数值


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