擅长:python、mysql、java
<p>行<code>infile.readlines()</code>消耗整个输入文件。所有的行都会被读取和遗忘,因为它们没有分配给变量。你知道吗</p>
<p>构造<code>["%s\t%s" %(item.strip(),2) for item in infile]</code>是一个列表理解。此表达式返回一个列表。通过将其赋给变量outfile,outfile的旧值(可能是一个文件对象)将被遗忘,并由列表返回的列表替换。此列表对象没有写入方法。通过将列表分配给另一个变量,outfile中的file对象将被保留。你知道吗</p>
<p>试试这个:</p>
<pre><code>def newfield(infile,outfile):
items = ["%s\t%s" %(item.strip(),2) for item in infile]
outfile.write("\n".join(items))
outfile.close()
return outfile
</code></pre>