2016-04-27 10 views
0

ファイル内のすべての値をfloatに型キャストする必要があります。ファイル101.txtを取り込み、別のファイルに型キャスト可能な値を書き込んでいますn101.txtファイル内のすべての値を浮動小数点に変換する

マイコード:

f2 = open('n101.txt', 'w+') 
with open("101.txt", "r") as f: 
    for line in f: 
     for i in line.split(' '): 
      try: 
       float(i) 
      except ValueError: 
       pass 
      else: 
       f2.write(i + " ") 
     f2.write("\n") 

私は(を除いてみずに、上記のようなコードを使用して)ファイルをチェックすると、私はまだフロートに変換可能でない値を見ること。これはどうやって起こるのですか?

+0

でも、それはいけない場合float' 'に変換される何を? –

+0

おそらく私が認識していない余分なスペースと空文字 – Sentient07

答えて

2

これを使用して:

f2 = open('n101.txt', 'w+') 
with open("101.txt", "r") as f: 
    for line in f: 
     for i in line.split(' '): 
      try: 
       i = float(i) 
      except ValueError: 
       pass 
      else: 
       f2.write(str(i) + " ") 
     f2.write("\n") 
f2.close() 

ラインfloat(i)は何も自分自身を行いません。実際にはfloat値はiですが、i自体は変更されません。プログラム上

は、以下のように動作します:

#101.txt 
1 
2 
3 

出力:

#n101.txt 
1.0 
2.0 
3.0 
+1

'with'ステートメントは自動的に' f'ファイルを閉じます。 'f.close()'の必要はありません。 –

+0

@CristianCiupituありがとうございます。回答が編集されました。 – EbraHim

関連する問題