0

タブで区切られた 2 つの列データを含むテキスト ファイルを読み込もうとしています。最初の列の値は整数または浮動小数点数のいずれかですが、2 番目の列は常に浮動小数点数になります。今、isinstance最初の列が整数か浮動小数点かを確認するために使用しています。ただし、isinstance値のリストまたはリストの最後の要素が使用されている場合は機能しないようです。これは私のコードです:

time_t = []
with open(logF, 'r') as f:
    for line in f:
        data_t = line.split()
        time_t.append(data_t[0])

time_length_max = time_t[-1]
print time_length_max

if isinstance(time_length_max, (int, long)):
   print "True"
 else:
   print "False"

私が得る出力は次のとおりです。

10000
False

time_length_max = 10000の代わりにを宣言すると、次のtime_length_max = time_t[-1]ようになります。

10000
True
4

2 に答える 2

1

で提案されているようにこれを試すことができます

https://stackoverflow.com/a/379966/350429

def num(s):
    try:
        return int(s)
    except ValueError:
        return float(s)

time_t = []
with open(logF, 'r') as f:
    for line in f:
        data_t = line.split()
        time_t.append(num(data_t[0]))

time_length_max = time_t[-1]
print time_length_max

if isinstance(time_length_max, (int, long)):
   print "True"
 else:
   print "False"

値はファイル内の数値でなければならないことに注意してください。空の文字列の場合、例外がスローされます。

于 2015-02-12T01:25:23.033 に答える