인터프리터 내에서 파이썬 명령으로 파일을 실행하려고합니다.
편집 : 별도의 프로세스를 호출하지 않고 해당 파일의 변수와 설정을 사용하려고합니다.
답변
몇 가지 방법들.
껍질에서
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())
그러면 스크립트가 실행되고 모든 전역 변수가 인터프리터의 전역 범위 (대부분의 스크립팅 환경에서 일반적인 동작)에 배치됩니다.
답변
아직 이걸 보지 못해서 놀랐습니다. 다음 -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 *’를 입력해야한다는 것을 알았습니다.