让我们澄清一下您的数据结构。听起来是这样的:
outer_list = [ ["STRING1", "STRING2", ...],
["STRING1", "STRING2", ...],
["STRING1", "STRING2", ...],
["STRING1", "STRING2", ...]
]
那么我们就用python的可迭代for循环结构来遍历外层列表吧。
for inner_list in outer_list:
但是我们想将每个inner_list 的内容写入一个文件,使用inner_list 在outer_list 中的位置。让我们使用内置的enumerate() 函数来获取位置。
for n, inner_list in enumerate(outer_list, 1):
# write inner list to file
让我们检查将inner_list 写入文件。
with open('file_{0}.dat'.format(n),'w') as ffile: # this is fine, well done.
ffile.write(inner_list)
所有这些将是:
for n, inner_list in enumerate(outer_list, 1):
with open('file_{0}.dat'.format(n),'w') as ffile:
ffile.write(inner_list)
# no need to close the file, the with syntax does this for you.
编辑:这里还需要一个步骤,正如@mhawke 指出的那样
write() 方法要求它被传递一个字符串。我们可以很容易地将 inner_list 转换为字符串。我的首选方法是使用join() 方法。我们可以指定我们将inner_list 中的每个字符串与一个换行符连接起来,这样它就可以很好地打印出来,即
'\n'.join(inner_list)
因此我们的最终解决方案是:
for n, inner_list in enumerate(outer_list, 1):
with open('file_{0}.dat'.format(n),'w') as ffile:
ffile.write('\n'.join(inner_list))