如何从文件中读取数据并将其排序到列表中?

时间:2014-10-06 09:49:39

标签: python python-3.2

我已经制作了一小段代码,用于收集名称和高分,并将其放入文件列表中。这是我的代码:

def main():
    pass
    fileobj = open('c:\\newfile.txt', 'w')
    count = 0
    player_names = []
    high_scores = []
    while count < 5:
        player_name = input('Name: ')
        high_score =  input('High Score: ')
        player_names.append(player_name)
        high_scores.append(high_score)
        fileobj.write(player_name + '\n')
        fileobj.write(high_score + '\n')
        count = count + 1
    fileobj.close()

我要做的是创建另一个脚本,该脚本将读取该文件并打印列表并根据高分值对其进行排序,我已经阅读了一两个小时如何做但不能掌握它。这是我的其他脚本到目前为止的样子:

def main():
    pass
    f = open('c:\\newfile.txt', 'r')
    print f
    f.readline()

我在print f行上收到错误,但是当我把它拿出来时脚本会运行但没有显示任何内容。

2 个答案:

答案 0 :(得分:0)

您收到错误是因为print() python3 中的函数。

print(f)

是正确的方法。此外,我没有得到pass语句的重要性。如果你想打印文件的内容,那么使用:

print(f.read()).

删除print f后屏幕上没有显示任何内容,因为f.readline()没有打印任何内容,它只是从当前文件指针读取文件,首先出现\n并将其作为字符串返回。您可以将f.readline()分配给某个变量,例如line = f.readline(),也可以直接在stdout上显示print(f.readline())

答案 1 :(得分:0)

尝试用以下代码替换最后两行:

print (f.read())

或者,如果您想对每一行做一些事情,您可以尝试:

def main():
    for line in open('c:\\newfile.txt', 'r'): 
        #do_something_to_line
        print line

看起来您正在尝试打印文件句柄而不是文件中的数据。