我已经制作了一小段代码,用于收集名称和高分,并将其放入文件列表中。这是我的代码:
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
行上收到错误,但是当我把它拿出来时脚本会运行但没有显示任何内容。
答案 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
看起来您正在尝试打印文件句柄而不是文件中的数据。