簡體   English   中英

Python:讀入文件,其中數字為分數或浮動以視為浮點數

[英]Python: Read in file with numbers that are fractions or floating to treat as floating numbers

Python問題:

with open(input, "rt") as f:
X = [map(float, line.split()) for line in f.readlines()[1:R]]  <<problem here
X = asarray(X, dtype=float) 

我有一個.txt文件,由數字組成,可以是分數或浮點數。 我在這里將它們作為浮點數數組讀入我的代碼中。 但是,這僅適用於浮動數字。 當您將分數添加為輸入文件中的一個數字時,會發生錯誤。 例如,我在我的文件中添加了1/4作為數字,我得到以下內容。

     with open(input, "rt") as f:
--->     X = [map(float, line.split()) for line in f.readlines()[1:R]] 
         X = asarray(X, dtype=float)


ValueError: invalid literal for float(): 1/4. 

我該如何解決? (這樣它可以讀取分數和浮點數,並在讀取它們時將這些分數轉換為浮動)

>>> from fractions import Fraction
>>> [float(Fraction(x)) for x in '0.25 1/4'.split()]
[0.25, 0.25]

所以你需要

X = [[float(Fraction(x)) for x in line.split()] for line in f.readlines()[1:R]]

注意:為避免制作整個文件的臨時列表,最好使用

from itertools import islice
with open(input, "rt") as f:
    X = [[float(Fraction(x)) for x in line.split()] for line in islice(f, 1, R)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM