0
datafile = open("temp.txt", "r")
record = datafile.readline()

while record != '':
    d1 = datafile.strip("\n").split(",")
    print d1[0],float (d1[1])
    record = datafile.readline()

datafile.close()

一時ファイルには次が含まれます

a,12.7
b,13.7
c,18.12

出力が得られません。助けてください。

4

4 に答える 4

4

正しいコードは次のとおりです。

with open('temp.txt') as f:
    for line in f:
        after_split = line.strip("\n").split(",")
        print after_split[0], float(after_split[1])

コードで出力が得られない主な理由は、datafile に strip() メソッドがないためです。例外が発生していないことに驚いています。

Python チュートリアルを読むことを強くお勧めします。別の言語で Python を書こうとしているようですが、それは良いことではありません。

于 2012-06-20T20:06:40.133 に答える
2

ファイルではなく、ライン上で strip と split を呼び出したいとします。

交換

d1 = datafile.strip("\n").split(",")

d1 = record.strip("\n").split(",")

于 2012-06-20T20:05:37.570 に答える
1

ファイルハンドラーで操作していますが、オンラインで動作する必要があります

このようにd1 = record.strip("\n").split(",")

datafile = open("temp.txt", "r")
record = datafile.readline()

while record != '':
    d1 = record.strip("\n").split(",")
    print d1[0],float (d1[1])
    record = datafile.readline()

datafile.close()
于 2012-06-20T20:06:48.467 に答える
0

おそらく、次のほうがうまくいくでしょう(説明としてのコメント):

# open file this way so that it automatically closes upon any errors
with open("temp.txt", "r") as f:
    data = f.readlines()

for line in data:
    # only process non-empty lines
    if line.strip():
        d1 = line.strip("\n").split(",")
        print d1[0], float(d1[1])
于 2012-06-20T20:12:48.560 に答える