擅长:python、mysql、java
<p>除了Andrew T指出的问题之外,如果您不再位于打开文件的<code>with</code>块中,则不能调用<code>file.write</code>。该文件在with块的末尾自动关闭,因此得到<code>ValueError: I/O operation on closed file</code>。你知道吗</p>
<p>所以应该将<code>write</code>调用移到with块中。当我们移动东西时,将<code>somelists</code>定义移到<code>for filename in filenames:</code>循环之外,因为没有必要多次分配它。只调用<code>product</code>一次,并使用<code>next</code>从中提取项目也会更有效。你知道吗</p>
<pre><code>import itertools
num_files = 5
elements_per_file = 2
somelists = [
['1','K','5'],
['4','d','1'],
['R','0','a'],
['2','t','8'],
]
items = ("".join(element) for element in itertools.product(*somelists))
for i in range(num_files):
filename = "my_file_{}.txt".format(i)
with open(filename, "w") as file:
for j in range(elements_per_file):
file.write(next(items) + "\n")
</code></pre>