python - 将列表中的每 N 个元素写入多个文本文件
问题描述
我正在尝试将嵌套列表中的每 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
解决方案
这完成了工作!
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
-loop一致,我正在采取步骤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
)
推荐阅读
- spring-boot - 为 Jacoco Agent 设置环境后 Tomcat 崩溃
- objective-c - 带有国家代码的 Objective-C 电话号码文本字段
- c# - C# XmlSerializer an object with various ways attributes setting
- c# - SQL 连接 2 个表,其条件因条件而采用一些默认的 NULL 值
- git - 在 Git 中的两个解决方案之间共享 Visual Studio 项目
- c# - 即使密码错误也可以访问 Sqlite 数据库
- python - 如何连接二维numpy字符串数组的相同位置元素?
- python - 为机器学习模型创建标记图像数据集
- c# - EF 代码首先 InsertOrUpdate 并返回 T
- c# - Libraries.android.view.InflateException:二进制 XML 文件:错误膨胀类 android.view.View