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

问题描述 投票:0回答: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
行上收到错误,但是当我将其取出时,脚本会运行,但没有显示任何内容。

python python-3.2
2个回答
0
投票

尝试将最后两行替换为:

print (f.read())

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

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

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


0
投票

您收到错误,因为

print()
python3 中的函数。

print(f)

是正确的方法。另外我没有明白

pass
语句的意义。如果你想打印文件的内容,那么使用:

print(f.read()).

删除

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

© www.soinside.com 2019 - 2024. All rights reserved.