将列表中的每N个元素写入多个文本文件

时间:2019-06-12 16:16:43

标签: python pandas loops text-files

我正在尝试将嵌套列表中每N个项目写入多个.txt文件。棘手的部分是将每组N-元素写入文本文件。

我的清单: list = ['item1a item1b item1c','item2a','item3a item3b','item4a item4b item4c','item5a','item6a item6b','item7a item7b item7c','item8a','item9a item9b']

我想要以下.txt文件输出:

text1.txt: item1a item1b item1c \n item2a \n item3a item3b
text2.txt: item4a item4b item4c \n item5a \n item6a item6b
text3.txt: item7a item7b item7c \n item8a \n item9a item9b

当前,每个嵌套列表都写入单个.txt文件。分组不是我所需要的。我好亲密!我认为这应该是个小问题。

例如:

text1.txt: item1a item1b item1c
text2.txt: item2a
text3.txt: item3a item3b

我的代码

list = ['item1a item1b item1c','item2a','item3a item3b','item4a item4b item4c',
'item5a','item6a item6b','item7a item7b item7c','item8a','item9a item9b']
for item, biglist in enumerate(list):
    f=open(outdir_name + "text" + str(item+1)+".txt","w")
    f.write(biglist + "\n".format(list))
    f.close()

当前,每个嵌套列表都写入单个.txt文件。分组不是我所需要的。我好亲密!我认为这应该是个小问题。

例如:

text1.txt: item1a item1b item1c
text2.txt: item2a
text3.txt: item3a item3b

1 个答案:

答案 0 :(得分:0)

这可以完成工作!

items_per_file = 3
your_list=['item1a item1b item1c','item2a','item3a item3b','item4a item4b item4c','item5a','item6a item6b','item7a item7b item7c','item8a','item9a item9b']
for item in range(0, len(your_list), items_per_file):
    f=open(outdir_name + 'text' + str((item//items_per_file)+1)+".txt","w")
    f.write("\n".join(your_list[x] for x in range(item, min(item+items_per_file, len(your_list) - 1))))
    f.close()

说明:

  • for循环的那一行中,我正在采取items_per_file的步骤;
  • f.open行中,文件名是item // items_per_file,因为如果没有// items_per_file,您将得到text1, text4, text7, ...;
  • f.write line中,我一次写了items_per_file个项目;

更新:

  • 现在您可以轻松更改items_per_file的数量
  • 现在它也应适用于your_list的八个项目(不可被items_per_file划分)