Предположим, у меня есть файл под названием «Продовольствие», в котором перечислены названия продуктов и их цены. Некоторые из этих предметов являются сырыми ингредиентами, а другие сделаны из разных количеств этих, например, я могу вручную перечислить цену яиц как 1 и найти, что омлет имеет цену по умолчанию 10, но затем обнаруживает, что омлет будет только нужно 5 яиц, поэтому мне понадобится программа, чтобы прочитать цену яиц, найдите линию, содержащую омлет, и замените ее «омлетом:» + str (яйца 5 *). Мне также может потребоваться добавить дополнительные ингредиенты/предметы питания, например. кучу омлетов, изготовленную из 5 омлетов. основная цель состояла бы в том, чтобы позволить просто отредактировать значение яиц, а также обновить значение омлета и пилеохоллетов. Я начал код, просто создав список строк, содержащихся в файле.Как заменить строки в файле, используя данные, содержащиеся в другом месте в том же файле?
with open("Food.txt") as g:
foodlist=g.readlines()
Файл 'Food.txt' будет в следующем формате:
eggs: 5
omelette: 20
pileofomelettes: 120
и т.д ... и после того, как работает код должен выглядеть
eggs: 5
omelette: 25
pileofomelettes: 125
I будет закодировать отношения вручную, так как они вряд ли когда-либо изменились (и даже если бы они это сделали, было бы довольно легко войти и изменить коэффициенты)
и будет прочитан питона в списке его формат, как что-то вроде
«[» яйцо 2 \ п»,„муки 1 \ п“,„масла 1 \ п“,„сахара 3 \ п“, 'almond 5 \ n', 'cherry 8 \ n'] '
Я искал алгоритмы поиска/замены, которые могут искать определенную фразу и заменять ее другой конкретной фразой, но я не знаю, как i 'd применить его, если строка может быть изменена (пользователь может изменить значения исходного ингредиента, если он хочет обновить все связанные с ним значения). Одно из решений, о котором я могу думать, включает преобразование их в формат словаря, причем все они перечислены как пара значений целочисленного значения, так что я мог бы просто заменить целую часть пары на основе целочисленных значений, хранящихся в других парах целых целых чисел , но, будучи неопытным, я не знаю, как бы я преобразовал список (или сам необработанный файл, еще лучше) в словарь.
Любые советы о том, как выполнить действия этой программы было бы весьма признателен :)
Edit- в фактическом применении программы, это не имеет значения, в каком порядке элементы перечислены в в финале файл, поэтому, если я перечислил все исходные ингредиенты в 1 месте и все составные элементы в другом (с большим пространством между ними, если нужно добавить больше необработанных элементов), я мог бы просто переписать всю вторую половину файла в произвольном порядке без проблем - если положение строк исходных ингредиентов остается неизменным.
вы могли бы включать в себя два исходных файлов ? –
делает это цепь черезt? Что, если я определю кучу омлетов? – Caridorc
Я сделал этот пример еды, чтобы помочь мне применить его к фактическому примеру в том же формате. И да, я бы хотел, чтобы на более позднем этапе можно было определить кучу омлетов и просто скопировать некоторый код с более ранней версии программа и просто изменить аргументы, которые она содержит, для работы с кучей омлетов – Cubbs