7

我想编写一个创建多行的文本文件,所以我想知道如何将每个值放在新行上。

这是我的代码:

import itertools
from itertools import permutations , combinations
lista=[]

splits=itertools.permutations('0123456789', 5)
for x in splits:
    lista.append(x)

f=open('lala.txt', 'w')
for i in lista:
    f.write(str(i))

在这部分我需要换行:f.write(str(i))

我试过了:f.write(str(i)\n)但给了我一个错误

4

3 回答 3

10

您可以使用:

f.write(str(i) + '\n')

于 2012-10-24T03:46:25.773 回答
4

由于您的行已经在列表中,您可以使用writelines()

import itertools

lista = [",".join(i)+'\n' for i in itertools.permutations('0123456789',5)]

with open('lala.txt', 'w') as f:
    f.writelines(lista)

我使用了自动为您关闭文件的with语句;并使用列表推导来创建您的初始排列列表。

于 2012-10-24T04:44:57.357 回答
1

编辑列表本身可能是不可取的。在这种情况下,您可以csv模块:

import itertools, os, csv

lista = list(itertools.permutations('0123456789',5))

with open('lala.txt', 'w', newline=os.linesep) as f:
    writer = csv.writer(f, quoting=csv.QUOTE_NONE)
    writer.writerows(lista)

quoting=csv.QUOTE_NONE是为了删除出现的"标记,因为置换的项目是字符串。

于 2020-09-04T15:07:33.263 回答