Как написать список имен и значений параметров в txt? - PullRequest
0 голосов
/ 10 июля 2020

У меня следующая проблема с моим python скриптом: есть много вычислений, и я хочу записать некоторые окончательные результаты в текстовый файл.

Это то, что я пробовал, поэтому далеко:

a1=3
a2=5
a3=10
a4=15

setupfile = open("setupfile.txt","w")
x = [a1,a2,a4]
for name in x:
    setupfile.write("name" + "=" + repr(name) +"\n")
setupfile.close()

Токовый выход:

name=3
name=5
name=15

Ожидаемый выход:

a1=3
a2=5
a4=15

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Вы можете обратиться к этому ответу для получения имени переменной из переменной. Я изменил там функцию namestr, чтобы получить имя переменной, содержащее букву a. Это связано с тем, что переменная names внутри нее содержит такие значения, как ['a1', 'name', '_96', '_97', '_134']

Также лучше использовать with при открытии файлов, поскольку она закрывается после завершения работы.

a1,a2,a3,a4 = 3,5,10,15

def namestr(obj, namespace):
    names = [name for name in namespace if namespace[name] is obj]
    name = [n for n in names if 'a' in n]
    return name[0]

with open("setupfile.txt","w") as setupfile:
    x = [a1,a2,a4]
    for name in x:
        setupfile.write(namestr(name, globals()) + "=" + repr(name) +"\n")
    setupfile.close()
0 голосов
/ 23 июля 2020

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

...