擅长:python、mysql、java
<p>目前,您的代码似乎在打开输入文件后立即将其截断。充其量,这可能会在不同的平台上产生不同的结果。在某些平台上,文件可能为空。我认为打开输入文件进行写作是一个打字错误</p>
<p>解决这个问题的更好方法是使用生成器。另外,空行的正确测试是<code>line == '\n'</code>,而不是<code>'\n' in line</code>,这将适用于除最后一行之外的所有返回行</p>
<pre><code>def noblanks(file):
for line in file:
if line != '\n':
yield line
</code></pre>
<p>您可以这样使用:</p>
<pre><code>with open(inputFileName, "r") as inf, open(outputFilename, 'w') as outf:
for line in noblanks(inf):
outf.write(line)
</code></pre>
<p><code>with</code>语句中的上下文管理器将确保您的文件正确关闭,而无需进一步操作</p>