擅长:python、mysql、java
<p>听起来你的输入文件中有一个空行。从您的注释来看,实际上有一个非空行,其中没有<code>|</code>个字符。无论哪种情况,检查结果行是否为空都很容易。在</p>
<p>试试这个:</p>
<pre><code>#UNTESTED
nf=open(Output_File,'w+')
with open(Input_File,'read') as f:
for row in f:
Current_line = str(row)
Reformated_line=str(','.join(Current_line.split('|')[1:-1]))
if Reformatted_line:
nf.write(Reformated_line+ "\n")
</code></pre>
<p>其他注意事项:</p>
<ul>
<li>您应该始终如一地使用<code>with</code>。以相同的方式打开两个文件。在</li>
<li><code>str(row)</code>是no-op。<code>row</code>已经是str</li>
<li><code>str(','.join(...))</code>同样是冗余的。在</li>
<li><code>open(..., 'read')</code>不是<code>open()</code>的模式参数的有效使用。您应该使用<code>r</code>,甚至完全忽略该参数。在</li>
<li>我不希望在更改现有数据格式时引入新名称。也就是说,我更喜欢<code>row = row.split()</code>,而不是{<cd10>}。在</li>
</ul>
<p>以下是一个包含以下建议和其他建议的版本:</p>
^{pr2}$