I'estou tentando executar um arquivo com comandos python de dentro do intérprete.
EDIT: I'estou tentando usar variáveis e configurações desse arquivo, não para invocar um processo separado.
Para Python 2:
>>> execfile('filename.py')
Para Python 3:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
Veja a documentação. Se você está usando Python 3.0, veja esta pergunta.
Veja a resposta de @S.Lott para um exemplo de como você acessa globals de filename.py depois de executá-lo.
De várias maneiras.
A partir da casca
python someFile.py
De dentro do IDLE, acerte **F5***.
Se você'estiver digitando interativamente, tente isto: (**Python 2 apenas***!)
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Para Python3, use:
>>> exec(open("filename.py").read())
I'estou tentando usar variáveis e configurações desse arquivo, não para invocar um processo separado.
Bem, simplesmente importando o arquivo com importar nome do arquivo
(menos .py, precisa estar no mesmo diretório ou no seu PATO PADRÃO
) irá executar o arquivo, tornando suas variáveis, funções, classes, etc. disponíveis no namespace filename.variable
.
Então se você tem cheddar.py
com a variável spam e a função ovos - você pode importá-los com importar cheddar
, acessar a variável com cheddar.spam
e executar a função chamando cheddar.eggs()
Se você tem código em cheddar.py
que está fora de uma função, ele será executado imediatamente, mas construir aplicações que rodam coisas na importação vai tornar difícil a reutilização do seu código. Se tudo for possível, coloque tudo dentro de funções ou classes.