所以我试着写一个列表来分隔文件。 每个列表包含100个或更少的字符串对象。目标是保留一个不超过100行的文本文件。
要做到这一点,我拆分列表但现在我遇到了将它们写入文件的问题。 因此,必须将列表中的列表写入其自己的单独文件中。总共有275个字符串对象
endline
答案 0 :(得分:1)
这样的事情会起作用。我不得不使用random
生成一些数据,进入长度为275个元素的列表。
import random
def chunks(l, n):
n = max(1, n)
return [l[i:i + n] for i in range(0, len(l), n)]
data = [random.randint(0, 10) for x in range(275)]
chunked_data = chunks(data, 100)
for file_num, sublist in enumerate(chunked_data):
with open("workFlow_sheet{}.txt".format(file_num), 'w') as outfile:
for item in sublist:
outfile.write(str(item) + '\n')
基本上,将数据细分为最大长度为100的嵌套列表,然后将每个嵌套列表的内容写入唯一文件。
修改强>
我无法根据包含相同数据的每个文件重现您的问题。但是,您在错误的范围内增加i
(它需要额外的缩进级别,我认为您在代码中多次覆盖每个文件)并且每次迭代时都没有close()
个文件。使用with
(Python context manager)只意味着它会在操作完成后自动关闭文件。我认为这是原始代码的工作调整...虽然生成了随机列表。
import random
import math
parameter_list = [random.randint(0, 10) for x in range(275)]
size=100
list_ofList_flows=[parameter_list[i:i+size] for i in range(0,len(parameter_list), size)]
#above list_ofList_flows contains [100][100][75] in terms of length
fileNumbers = int(math.ceil((len(parameter_list) / 100)))
#fileNumbers is 3, because we have 3 sets of lists[100, 100, 75]
i = 0
while i < fileNumbers:
for flowGroup in list_ofList_flows:
f = open("workFlow_sheet" + str(i) + ".txt", "w")
for flo in flowGroup:
f.write(str(flo) + '\n')
f.close()
i = i + 1