Conheço o linux há um tempo e sei que existem diversas ferramentas quando usamos o terminal (chamo de ferramentas aquelas letras que acompanham os comandos). Gostaria de saber se existe alguma forma de executar um primeiro script em Python e na hora de executar o segundo script, usar as mesmas variáveis do primeiro. Estou usando isso para data science, mas vou escrever um exemplo bem curto usando a mesma ideia do que eu estou trabalhando: contar os picos de um gráfico e utilizar os pontos para realizar alguns cálculos, como o gráfico é de um sinal ruidoso preciso pegar os pontos manualmente. Não entendo pq não funciona usar apenas um programa, mas se escrevo tudo em um único programa ele simplesmente não salva os pontos. Deixei em negrito no segundo programa as variáveis que eu preciso 'reutilizar' do programa1. Espero que possam me ajudar.
-programa1.py: coloco em gráficos os dados obtidos em laboratório
import numpy as np
import matplotlib.pyplot as plt
picos = []
for i in range(1,5):
w = 2*np.pi*i*i
title = str(round(w))
x = np.linspace(0,10*np.pi,20000)
y = np.sin(w*x)
plt.figure(title)
plt.plot(x, y, 'r-', label=')
-programa2.py: clico em cada pico do sinal e salvo na lista picos, para depois escrever em um arquivo e poder calcular o que é de interesse
[code]
def desenho(event):
# Faz um quadrado azul no ponto que foi clicado
tb = plt.get_current_fig_manager().toolbar
if event.button==1 and event.inaxes and tb.mode == '':
p,q = event.xdata,event.ydata
plt.plot([p],[q],'bs')
plt.draw()
def salvando(event):
# Salva os dados na lista 'picos'
global picos
ind = event.ind
a = np.take(x,ind)[0]
picos = np.append(picos,[int(a)])
plt.figure(title).canvas.mpl_connect('pick_event', salvando)
plt.figure(title).canvas.mpl_connect('button_press_event', desenho)
plt.tight_layout()
plt.show()
picos = np.array(sorted(set(picos)))
nome = '/home/user/'+ SINALBASE[11:21]+'/' + SINALBASE[16:21] + '.csv'
arquivo = open(nome,'a')
for i in range(len(picos)):
if i == len(picos)-1:
dale = str(int(picos[i]-I0))+'\n'
else:
dale = str(picos[i]-I0)+','
arquivo.write(dale)
[\code]