2015-05-02 2 views
0

Я пытался загрузить текстовый файл в Python и заменить последнее слово. Текстовый файл выглядит так:Python: как разрешить пользователю выбирать строку для редактирования?

A1 I'm at the shop with Bill 
B3 I'm going to the shop with Sarah 
E3 I was at the shop with nobody 
F5 I'm at the shop with Cameron 

Я хочу разрешить пользователю выбирать, какую строку редактировать. Таким образом, они могут ввести B3 для второй строки, а затем заменить имя в конце. Я пробовал множество вещей с ним как функцию, но я просто не могу подсчитать строки, которые нужно отредактировать.

+1

Можете ли вы показать нам код, который вы пробовали? Что пошло не так? – syntonym

+0

Все они были сосредоточены вокруг попытки прокрутки текстового файла, и если бы фраза, введенная пользователем, была сопоставлена, она выбрала бы эту строку. Я попытался перечислить несколько раз, но не получил никаких результатов. – Versace

+0

Можете ли вы обновить сообщение с кодом и ожидаемым поведением? Существует несколько способов сделать то, что вы хотите. Буква индекса не соответствует какой-либо схеме? Как вы планируете получать линию? – syntonym

ответ

0

Используйте функцию ord(c) для преобразования буквы в число и используйте ее, чтобы выбрать свой индекс строки.

choice = input("Enter the row you would like to change") 

if choice.isalpha(): # if they enter 1 or b or C 
    choice_num = ord(choice.lower()) - 97 
else: 
    choice_num = choice 

with open('shops.txt') as shoplist: 
    lines = shoplist.read().splitlines() 
    name = lines[choice_num].split()[-1] 
    lines[choice_num] = lines[2].replace(name, "Steve") 
    with open ('shops.txt','w') as shoplist: 
     for l in lines: 
      shoplist.write(l+"\n') 
+0

Извините, я понял, что неправильно написал текстовый файл. Я исправил это сейчас. Начальная буква не соответствует шаблону. – Versace

Смежные вопросы