Контекст:
Я создаю программу, которая автоматически заменяет значки приложений MacOS, и в настоящее время я делаю функцию резервного копирования некоторой информации перед заменой этих значков.
Проблема:
Когда я вызываю следующую функцию один раз все работает отлично, но когда я вызываю его во второй раз, к файлу добавляется та же информация, даже если я предоставил оператор if.
Я не могу заставить функцию «прочитать файл, а если нет» существует создать файл, затем прочитать его "а также" добавить к файлу, если app["app_name"]
нет в файле ".
код:
def backup(app_list):
"""
Takes a list of dictionaries containing the "name" & "path" of each application
Saves the original icon name for each application in a file
"""
if not os.path.exists(BACKUP_PATH):
os.mkdir(BACKUP_PATH)
for app in get_icon_name(app_list):
with open(os.path.join(BACKUP_PATH, "CFBundleIconFile.txt"), "a+") as file:
if app["app_name"] not in file.read():
file.write(str(app) + "\n")
уточнение:
Функция «get_icon_name» возвращает список словарей, содержащих «app_name» и «icon_name» для каждого приложения в данном списке.