2016-10-01 7 views
0

私のコードには\nはありませんが、すべての変数を出力すると、最後の変数が別の行に出力されていることを意味する改行が作成されます。「 n」ではなく、新しい行が作成されていますか?

私のコード:

with open("read_it.txt", "r") as text_file: 
    for items in text_file: 
     line = items.split(",") 
     if GTIN in items: 
      product = line[1] 
      indprice = line[2] 
      finprice = float(indprice)* float(Quantity) 
      print(GTIN,product,Quantity,"£",indprice,"£",finprice) 

電流出力(間違った):私はしたい

086947367 banana 2 £ 0.50 
£ 1.0 

:任意のヘルプは感謝

86947367 banana 2 £ 0.50 £ 1.0 

+0

は、あなたの端末がラインをラッピングしていませんか? – HSchmale

+9

ファイル中の行** do **は '\ n'を含み、Pythonは最後の' \ n'を削除しません**また、 'split( '、')'はセパレータ以外のものを削除しません。したがって 'indprice '最後に改行が入っています。 – Bakuriu

+4

検証するだけで、 'print(repr(indprice))'できます。改行が表示されます。 – tdelaney

答えて

2

ファイルオブジェクト(あなたのforループで暗黙的に行っている)に対してreadlineを呼び出すと、末尾に '\ n'や '\ r'の文字が残ります。この場合、あなたのindprice変数にはその末尾に '\ n'が含まれます。

試してみてください。

それはあなたが完全にメモリに引き出すことができる小さなテキストファイルかどう
line = items.strip('\r\n').split(',') 

または、:

for items in text_file.read().split('\n'): 
+0

よろしくお願いします。 –

関連する問題