Как мне прочитать данные из файла и отсортировать их в список?
Я сделал этот небольшой фрагмент кода, который собирает имя и рекорд и помещает его в список в файл. Вот мой код:
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()
Я пытаюсь создать еще один скрипт, который будет читать этот файл, распечатывать список и сортировать его в соответствии со значениями High Score. Я час или два читал о том, как это сделать, но не могу просто повесить трубку. этого Вот как выглядит мой другой скрипт:
def main():
pass
f = open('c:\\newfile.txt', 'r')
print f
f.readline()
Я получаю ошибку на print f
строка, но когда я вынимаю это, скрипт запускается, но ничего не отображается.
2 ответа
Попробуйте заменить две последние строки на:
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())