Есть две возможности: во-первых, объединить их в один скрипт.Это может выглядеть примерно так (в script2.py)
import script1
...
script1.dostuff()
importantvar = script1.importantvar
doScript2Stuff(importantvar)
Однако, не зная вашего приложения, я бы посоветовал инкапсулировать все, что script1 делает в функцию, так что вы можете просто вызвать
(var1, var2, var3) = script1.dostuffAndReturnVariables()
поскольку всегда хорошо избегать глобальных переменных.Кроме того, это может пригодиться позже, если материал в script1 не выполняется в момент, когда вы импортируете его (как это делается, если вы пишете все команды непосредственно на главном уровне), но когда вы этого хотите, вызываяфункция.В противном случае все может запутаться, когда вы получите больше модулей, и вы можете переставить команды импорта, потому что они делают так много.
Вторая возможность, если по какой-то причине их нужно запускать отдельно, этоиспользуйте pickle.
Запишите
output = open(picklefile, "w")
pickle.dump(vars, output)
output.close()
в script1.py
, а затем
inputfile = open(picklefile, "r")
vars = pickle.load(inputfile)
input.close()
в script2.py.Таким образом, вы сохраняете содержимое вашей переменной в файл и можете восстанавливать его оттуда, когда это необходимо.
Однако я бы предпочел первый подход, если только у них нет веских причин не запускаться.вместе, так как это улучшает структуру вашего кода.