python文本阅读

时间:2012-06-20 20:02:24

标签: python file-io

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 个答案:

答案 0 :(得分: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])

你的代码中没有得到输出的主要原因是数据文件没有strip()方法,我很惊讶你没有得到异常。

我强烈建议您阅读Python教程 - 看起来您正试图用另一种语言编写Python,而 A Good Thing

答案 1 :(得分:2)

您想要在行上调用strip和split,而不是文件。

替换

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

使用

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

答案 2 :(得分: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()

答案 3 :(得分: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])