Что значит "изменить переменную в файле"?
Одно дело, если файл был импортирован, и тебе нужно изменить переменную в нём. Это легко.
import names
names.name1 = 'Абдурахман ибн Хоттаб'
Вот только такое изменение не сохранится в файл. Если тебя это устраивает, то вопрос закрыт.
А если ты хочешь, чтобы оно сохранялось, то всё намного хуже, потому что ты пытаешься использовать питоновский файл как файл конфигурации. Это не дело. И ещё хуже то, что твои переменные name1, name2, name3 намекают, что тебе на самом деле нужен список.
Тогда у тебя получится что-то такое# names.json
["Дима", "Маша", "Елена"]
# main.py
import json # чтобы легко и удобно сохранять структуры данных в файл
import sys # чтобы узнать, где лежит main.py, и сохранить рядом
from pathlib import Path # чтобы работать с путями к файлам
MAIN_PY = Path(sys.argv[0]) # путь до main.py
MAIN_DIR = MAIN_PY.parent.resolve() # путь до папки, где лежит main.py
CFG = MAIN_DIR / 'names.json' # путь до файла, куда сохраняем данные
with CFG.open('rt', encoding='utf-8') as cfg: # открываем на чтение
names = json.load(cfg) # читаем всё содержимое файла
# пользуемся полученными данными - списком имён
print(names)
names[0] = "Абдурахман ибн Хоттаб"
# сохраняем список обратно
with CFG.open('wt', encoding='utf-8') as cfg: # открываем на запись
json.dump( # пишем всё содержимое списка в файл
names, # что будет содержимым файла
cfg, # в какой файл записать
ensure_ascii=False, # чтобы не заменял кириллицу на коды символов
indent=2, # чтобы были красивые отступы. Если убрать, файл будет весь в одну строку.
)