我编写了一小段代码,用于收集姓名和高分并将其放入文件的列表中。这是我的代码:
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
行上收到错误,但是当我将其取出时,脚本会运行,但没有显示任何内容。
尝试将最后两行替换为:
print (f.read())
或者,如果您想对每一行做一些事情,您可以尝试:
def main():
for line in open('c:\\newfile.txt', 'r'):
#do_something_to_line
print line
看起来您正在尝试打印文件句柄而不是文件中的数据。
您收到错误,因为
print()
是 python3 中的函数。
print(f)
是正确的方法。另外我没有明白
pass
语句的意义。如果你想打印文件的内容,那么使用:
print(f.read()).
删除
print f
后,屏幕上不会显示任何内容,因为 f.readline()
不会打印任何内容,它只是从当前文件指针读取文件到第一次出现 \n
并将其作为字符串返回。您可以将 f.readline()
分配给某个变量,例如 line = f.readline()
,也可以直接将其显示在标准输出上,例如 print(f.readline())