我有这样一个脚本,它可以让单词有多种组合:
import itertools
from itertools import combinations_with_replacement
list = ['Mark', 'Jones', 'Albert', 'Mary', 'Bob']
combs = itertools.combinations_with_replacement(list, 5)
for item in combs:
print(item)
with open('output{0}.txt', 'a') as f:
f.writelines(item)
问题是输出文件中的单词之间没有空格,所有单词都在同一行上,我尝试了多种解决方案,但没有工作。另外,我尝试将每10次迭代写在一个单独的文件中,但也找不到解决方案
如果你能给我一些建议
谢谢
输出文件如下所示
MarkMarkMarkMarkMarkMarkMarkMarkMarkJones
这就是它应该看起来的样子
Mark Mark Mark Mark Mark
Mark Mark Mark Mark Jones
4条答案
按热度按时间l0oc07j21#
join
方法将每个组合中的单词连接起来,中间留有空格。\n
,以确保每个组合都写在输出文件的单独一行上。你可以使用一个
counter
变量来记录迭代次数,并每10次迭代创建一个新文件。file_counter
变量创建一个新文件。重复该过程,直到处理完所有组合。hsvhsicv2#
如果希望在每个组合
item
之间添加一个换行符,可以像这样追加一个换行符join()
用于将item
元组转换为空格分隔的字符串,否则将item
元组写入文件,如下所示:('Mark', 'Mark', 'Mark', 'Mark', 'Mark')
而不是Mark Mark Mark Mark Mark
g6ll5ycj3#
使用
print(item, file=f)
代替f.writelines(item)
。函数print
默认情况下在任何打印的末尾添加一个换行符。或者,您可以继续使用
writelines
,但必须在末尾连接一个换行符。ar5n3qh54#
首先你应该在for循环之前打开文件
第二步,在项目中添加一个换行符