[python] 파이썬 인터프리터 내에서 파일을 실행하는 방법은 무엇입니까?

인터프리터 내에서 파이썬 명령으로 파일을 실행하려고합니다.

편집 : 별도의 프로세스를 호출하지 않고 해당 파일의 변수와 설정을 사용하려고합니다.



답변

몇 가지 방법들.

껍질에서

python someFile.py

IDLE 내부에서 F5를 누르 십시오 .

대화식으로 입력하는 경우 다음을 시도하십시오. ( Python 2 전용 !)

>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module

Python3의 경우 다음을 사용하십시오.

>>> exec(open("filename.py").read())


답변

파이썬 2의 경우 :

>>> execfile('filename.py')

파이썬 3의 경우 :

>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())

설명서를 참조하십시오 . Python 3.0을 사용하는 경우이 질문을 참조하십시오 .

filename.py에서 전역에 액세스 한 후 실행하는 방법에 대한 예는 @ S.Lott의 답변을 참조하십시오.


답변

파이썬 2 + 파이썬 3

exec(open("./path/to/script.py").read(), globals())

그러면 스크립트가 실행되고 모든 전역 변수가 인터프리터의 전역 범위 (대부분의 스크립팅 환경에서 일반적인 동작)에 배치됩니다.

파이썬 3 exec문서


답변

아직 이걸 보지 못해서 놀랐습니다. 다음 -i옵션을 사용하여 파일을 실행 한 다음 실행이 종료 된 후 인터프리터를 열어 둘 수 있습니다 .

| foo.py |
----------
testvar = 10

def bar(bing):
  return bing*3

--------



$ python -i foo.py
>>> testvar
10
>>> bar(6)
18


답변

별도의 프로세스를 호출하지 않고 해당 파일의 변수와 설정을 사용하려고합니다.

음, import filename(-py를 빼고 같은 디렉토리에 있거나 파일에 있어야 함) 파일을 가져 오면 파일을 PYTHONPATH실행하여 변수, 함수, 클래스 등을 filename.variable네임 스페이스 에서 사용할 수 있습니다 .

따라서 cheddar.py스팸 변수와 함수 에그가있는 경우 –로 가져 와서 import cheddar변수를 액세스 cheddar.spam하고 다음을 호출하여 함수를 실행할 수 있습니다.cheddar.eggs()

cheddar.py함수 외부에 코드가 있으면 즉시 실행되지만 가져올 때 실행되는 응용 프로그램을 빌드하면 코드를 재사용하기가 어려워집니다. 가능하다면 모든 것을 함수 나 클래스 안에 넣으십시오.


답변

내 관점에서 가장 좋은 방법은 다음과 같습니다.

import yourfile

및 yourfile.py를 수정 한 후

reload(yourfile)   

또는

import imp;
imp.reload(yourfile) in python3

그러나 이것은 함수와 클래스를 다음과 같이 만들 것입니다 : yourfile.function1, yourfile.class1 …..

당신이 그것들을 받아 들일 수 없다면, 마지막 해결책은 다음과 같습니다.

reload(yourfile)
from yourfile import *


답변

나는 전문가가 아니지만 이것이 내가 주목 한 것입니다.

예를 들어 코드가 mycode.py이고 ‘import mycode’만 입력하면 Python에서 코드를 실행하지만 모든 변수를 인터프리터에서 사용할 수는 없습니다. 인터프리터가 모든 변수를 사용할 수있게하려면 실제로 ‘from mycode import *’를 입력해야한다는 것을 알았습니다.