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

Python 如何从文件中读取数据并将其排序到列表中?,python,python-3.2,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_sc

我制作了这段小代码,它收集了一个名字和一个高分,并将其放入一个列表中并保存到一个文件中。这是我的密码:

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()

我在
print f
行上得到一个错误,但是当我取出它时,脚本运行,但没有显示任何内容。

您得到了错误,因为
print()
python3中的一个函数

print(f)
这是正确的方法。另外,我没有了解
pass
语句的意义。如果要打印文件的内容,请使用:

print(f.read()).

删除
print f
后,屏幕上不会显示任何内容,因为
f.readline()
不会打印任何内容,它只是从当前文件指针读取文件,指向第一次出现的
\n
,并将其作为字符串返回。您可以将
f.readline()
赋值给某个变量,如
line=f.readline()
,或者您可以直接在stdout上显示它,如
print(f.readline())

尝试将最后两行替换为:

print (f.read())
或者,如果您想对每一行执行某些操作,您可以尝试:

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

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

Pro提示:当复合语句中有其他代码时(例如函数执行某些操作),您可以安全地删除
pass
语句。您对
f.readline()
调用不做任何操作;使用
line=f.readline()
,然后使用
print(line)
查看第一行内容。哦,是的,HP收到了,谢谢!通过是因为它在我使用的scripter应用程序中,如果我想按高分值对列表排序,该怎么办?我将如何实现这一点?
def main():
    for line in open('c:\\newfile.txt', 'r'): 
        #do_something_to_line
        print line