2015-08-30 2 views
0

Я хотел бы заменить слова с номерами, которые им назначены.Заменить строку с указанным номером из файла

Так, например, если CurrentString = dog, как бы заменить его номером 3?

Мой внешний файл может выглядеть примерно так (просто пример):

1,bird 
2,cat 
3,dog 

Спасибо!

+2

Что вы пробовали так далеко? Где вы пытаетесь заменить? Возможно, пример того, что вы на самом деле хотите, поможет и где проблема в том, что вы пробовали –

+0

Просьба уточнить с помощью ввода ввода и ожидаемого вывода? – ZdaR

+0

Пример ввода будет 'собака', а выход будет' 3' в переменной. Вот и все. – pufAmuf

ответ

1

Что-то, как это будет работать, если данные в файл (в моем примере это/TMP/file_index) уник, и это сейчас очень большой (в противном случае вы бы большую структуру в памяти):

index = {} 
with open('/tmp/file_index', 'r') as f: 
    for line in f.readlines(): 
     index[line.split(',')[1].strip()] = line.split(',')[0] 


if CurrentString in index.keys(): 
    CurrentString = index[CurrentString] 
+0

Эй, Ievgen, так что в основном, что мы делаем для каждой строки, мы читаем весь файл, и если мы найдем правильное слово, мы разделим строку и извлечем номер? – pufAmuf

+0

Нет. Вы читаете файл только один раз и создаете сопоставление. – Matthias

+0

Интересное спасибо! – pufAmuf