あなたが入力ファイル内の空行を持っているようですね。あなたのコメントから、実際には|
文字がない空でない行があります。どちらの場合でも、空の結果行を確認するだけで十分です。
これを試してみてください:
#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")
その他の注意事項:
- あなたは一貫し
with
を使用する必要があります。両方のファイルを同じ方法で開きます。
str(row)
はノーオペレーションです。 row
はすでにstrです。
str(','.join(...))
も同様に冗長です。
open(..., 'read')
は、open()
へのモードパラメータの有効な使用ではありません。 r
を使用するか、パラメータを完全に省略する必要があります。
- 私は、既存のデータのフォーマットを変更するときに新しい名前を導入したくないと思います。すなわち、私はを超える
row = row.split()
を好む。ここで
これらおよび他の提案を取り入れたバージョンです:
with open(Input_File) as inf, open(Output_File, 'w+') as outf:
for row in inf:
row = ','.join(row.split('|')[1:-1])
if row:
outf.write(row + "\n")
Asides:あなたは1つのWITH' 'を持つファイルが、他のないを開く理由はありますか?また、なぜ 'str(row) 'と呼ぶのですか? 'row'はすでに' str'であるので、これは何も役に立たないようです。 –