#python
#python
Вопрос:
Я пытаюсь прочитать Hi.txt файл, который я ранее создал на консоли, но вместо того, чтобы просто получать из него значения, я пытаюсь добавить значение индекса рядом с ним, используя функцию enumerate . (Предположим, что текстовый файл содержит 3 элемента).
with open('Hi.txt','r') as hello:
x = hello.read()
print(x)
Насколько я понимаю, этот код будет перебирать элементы в этом текстовом файле следующим образом:
Dave
Jack
Mary
Однако, когда я пытаюсь сделать что-то вроде этого:
with open('Hi.txt','r') as hello:
x = hello.read()
for i,v in enumerate(x,1):
print(i,v)
Он выводит каждый символ один за другим.
Желаемый результат:
1 Dave
2 Jack
3 Mary
Ответ №1:
Вы перечисляете сам дескриптор файла:
with open('/Hi.txt','r') as hello:
for i,v in enumerate(hello,1):
print(i,v, end="")
Ответ №2:
Вы можете сделать что-то вроде этого:
with open('Hi.txt','r') as hello:
for i,v in enumerate(hello.readlines(), 1):
print(i,v, end="")
Это повторится для всех строк в вашем файле (при условии, что у вас есть все элементы файла в разделенных строках).
Комментарии:
1. я думаю, что это
for i,v in enumerate(hello)
не должно бытьhello.readlines()
2. Есть два способа, с помощью которых это не дает оператору то, что он / она хочет. — это в принципе работает, но вы пропустили две детали, которые означают, что это не совсем правильно.
3. @JoeFerndz Я только что протестировал, и это точно то же самое, используя
enumerate(hello)
иenumerate(hello.readlines())
4. да … и ваши значения индекса начинаются с 0, а не с 1
5. @JorgeMorgado, я вижу, что ты выполняешь readlines(), поэтому он помещает все в диапазон. И вы используете v для выполнения по умолчанию n принудительного end = «» . Неплохо. Проголосовал за изобретательность