pythonnão funciona se você estiver executando o python 3, python3é usado.
Pzkpfw
41
O executfile não existe mais no python3 e o exec () parece não estar funcionando de alguma forma ... não tenho certeza do que estou fazendo de errado. você pode atualizar a resposta?
temporary_user_name
existe alguma maneira de fornecer stdinde um arquivo como usar <para o script em execução no execfile(). @ s-lott
bhanu
9
O @pzkpfw python pode apontar para qualquer versão do python. Eu vi ambientes com apenas python v3 para onde pythonaponta python3.
StockB
2
@pzkpfw Isso depende do pythonexecutável que o sistema encontra ao examinar as pastas na variável de ambiente PATH.
Isso executará um script e colocará todas as suas variáveis globais no escopo global do intérprete (o comportamento normal na maioria dos ambientes de script).
Você é meu herói! Há dias que brigo com coisas realmente estranhas, onde os.getcwd () disse uma coisa, mas glob ("*") trabalhou em outro diretório ... Obrigado! Obrigado!
pallevillesen
Existe uma maneira de passar um parâmetro para o script? o seguinte não funciona: exec (aberto "setup.py install") read (), globals ()).
ben
1
@ ben que não funcionará porque openlê diretamente o código do script. Para passar argumentos, observe esta resposta , mas em vez de execfile, obviamente, use exece opencomo mostrado acima.
Nico
47
Surpreso, ainda não vi isso. Você pode executar um arquivo e deixar o intérprete aberto após o término da execução, usando a -iopção:
Estou tentando usar variáveis e configurações desse arquivo, para não invocar um processo separado.
Bem, simplesmente importar o arquivo com import filename(menos .py, precisa estar no mesmo diretório ou no seu PYTHONPATH) executará o arquivo, disponibilizando suas variáveis, funções, classes, etc. no filename.variableespaço para nome.
Portanto, se você possui cheddar.pya variável spam e a função eggs - você pode importá-la import cheddar, acessar a variável with cheddar.spame executar a função chamandocheddar.eggs()
Se você tiver um código cheddar.pyfora da função, ele será executado imediatamente, mas a criação de aplicativos que executam coisas na importação dificultará a reutilização do código. Se possível, coloque tudo dentro de funções ou classes.
se o seu código for mycode.py, por exemplo, e você digitar apenas 'import mycode', o Python o executará, mas não disponibilizará todas as suas variáveis para o intérprete. Descobri que você deve digitar realmente 'from mycode import *' se quiser disponibilizar todas as variáveis para o intérprete.
Respostas:
Várias formas.
Da casca
De dentro do IDLE, pressione F5 .
Se você estiver digitando de forma interativa, tente o seguinte: ( somente Python 2 !)
Para Python3 , use:
fonte
python
não funciona se você estiver executando o python 3,python3
é usado.stdin
de um arquivo como usar<
para o script em execução noexecfile()
. @ s-lottpython
apontapython3
.python
executável que o sistema encontra ao examinar as pastas na variável de ambientePATH
.Para Python 2:
Para Python 3:
Veja a documentação . Se você estiver usando o Python 3.0, consulte esta pergunta .
Veja a resposta de @ S.Lott para obter um exemplo de como você acessa globais de filename.py após executá-lo.
fonte
Python 2 + Python 3
Isso executará um script e colocará todas as suas variáveis globais no escopo global do intérprete (o comportamento normal na maioria dos ambientes de script).
exec
Documentação do Python 3fonte
open
lê diretamente o código do script. Para passar argumentos, observe esta resposta , mas em vez deexecfile
, obviamente, useexec
eopen
como mostrado acima.Surpreso, ainda não vi isso. Você pode executar um arquivo e deixar o intérprete aberto após o término da execução, usando a
-i
opção:fonte
Bem, simplesmente importar o arquivo com
import filename
(menos .py, precisa estar no mesmo diretório ou no seuPYTHONPATH
) executará o arquivo, disponibilizando suas variáveis, funções, classes, etc. nofilename.variable
espaço para nome.Portanto, se você possui
cheddar.py
a variável spam e a função eggs - você pode importá-laimport cheddar
, acessar a variável withcheddar.spam
e executar a função chamandocheddar.eggs()
Se você tiver um código
cheddar.py
fora da função, ele será executado imediatamente, mas a criação de aplicativos que executam coisas na importação dificultará a reutilização do código. Se possível, coloque tudo dentro de funções ou classes.fonte
from filename import *
Do meu ponto de vista, a melhor maneira é:
e depois de modificar o seu arquivo.py
ou
mas isso fará com que a função e as classes sejam assim: yourfile.function1, yourfile.class1 .....
Se você não pode aceitá-las, a solução finalmente é:
fonte
Não sou especialista, mas foi o que notei:
se o seu código for mycode.py, por exemplo, e você digitar apenas 'import mycode', o Python o executará, mas não disponibilizará todas as suas variáveis para o intérprete. Descobri que você deve digitar realmente 'from mycode import *' se quiser disponibilizar todas as variáveis para o intérprete.
fonte
Apenas faça,
Certifique-se de não adicionar a extensão .py. Se o seu arquivo .py no subdiretório usar,
fonte
Para uso python3 ou com
xxxx = name
deyourfile
.fonte
Para Python 3:
Verifique se você está no diretório correto antes de executar o comando.
Para executar um arquivo de um diretório diferente, você pode usar o comando abaixo:
fonte
Supondo que você deseje os seguintes recursos:
__name__ == '__main__'
é True para que os scripts se comportem corretamente como scripts.O
exec(open('foo.py').read())
recurso de falha 1 Aimport foo
estratégia de falha recurso 2Para obter os dois, você precisa do seguinte:
fonte