2016-08-09 32 views
1
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])) 
     nf.write(Reformated_line+ "\n") 

Input fileは表形式になっていますが、CSVファイルに書き込んでいますが、最終出力に空白行が1つあります。 CSVの最後の空行を削除するにはどうすればよいですか?ささいなことを並べ替えのCSVファイルの最後の空白行を削除します

+1

Asides:あなたは1つのWITH' 'を持つファイルが、他のないを開く理由はありますか?また、なぜ 'str(row) 'と呼ぶのですか? 'row'はすでに' str'であるので、これは何も役に立たないようです。 –

答えて

1

あなたが入力ファイル内の空行を持っているようですね。あなたのコメントから、実際には|文字がない空でない行があります。どちらの場合でも、空の結果行を確認するだけで十分です。

これを試してみてください:

#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") 
+0

Thanks Rob。新しいPythonです私はあなたの提案に従ってスクリプトを変更しました。しかし、私はまだ出力で空の行を取得しています。私の入力に空の行はありません。しかし、入力の最後の行がどのように見えるかは以下の通りです:--------------------------- –

+0

上記の2番目の例は、 。そうでない場合は、質問を編集して問題を示す**完全な**サンプルプログラムを含めるようにしてください。必要に応じてサンプル入力を含めます。詳細は[mcve]を参照してください。 –

+0

@Prashanth_Ramanathan - あなたが記述した入力を処理するための最初の例を更新しました。 –

0

ちょうど質問:

first = True 
with open(Input_File,'read') as f, open(Output_File,'w+') as nf: 
    for row in f: 
     Current_line = str(row) 
     Reformated_line=str(','.join(Current_line.split('|')[1:-1])) 
     if not first: 
      nf.write('\n') 
     else: 
      first = False 
     nf.write(Reformated_line) 
+1

1つの 'with'ステートメントで複数のファイルを開くことができます。それ以外の場合は、 'nf'を閉じることを忘れないでください。 –

関連する問題