답변:
몇 가지 방법들.
껍질에서
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())
python
python 3을 실행 중이면 작동하지 않고 python3
대신 사용됩니다.
stdin
사용 <
하는 것과 같은 파일 을 제공하는 방법이 execfile()
있습니까? @ s-lott
python
점을 python3
.
python
환경 변수에서 폴더를 찾을 때 시스템이 찾는 실행 파일 에 따라 다릅니다 PATH
.
파이썬 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의 답변을 참조하십시오.
exec(open("./path/to/script.py").read(), globals())
그러면 스크립트가 실행되고 모든 전역 변수가 인터프리터의 전역 범위 (대부분의 스크립팅 환경에서 일반적인 동작)에 배치됩니다.
별도의 프로세스를 호출하지 않고 해당 파일의 변수와 설정을 사용하려고합니다.
음, import filename
(-py를 빼고 같은 디렉토리에 있거나 파일에 있어야 함) 파일을 가져 오면 파일을 PYTHONPATH
실행하여 변수, 함수, 클래스 등을 filename.variable
네임 스페이스 에서 사용할 수 있습니다 .
따라서 cheddar.py
스팸 변수와 함수 에그가있는 경우 –로 가져 와서 import cheddar
변수를 액세스 cheddar.spam
하고 다음을 호출하여 함수를 실행할 수 있습니다.cheddar.eggs()
cheddar.py
함수 외부에 코드가 있으면 즉시 실행되지만 가져올 때 실행되는 응용 프로그램을 빌드하면 코드를 재사용하기가 어려워집니다. 가능하다면 모든 것을 함수 나 클래스 안에 넣으십시오.
from filename import *
나는 전문가가 아니지만 이것이 내가 주목 한 것입니다.
예를 들어 코드가 mycode.py이고 'import mycode'만 입력하면 Python에서 코드를 실행하지만 모든 변수를 인터프리터에서 사용할 수는 없습니다. 인터프리터가 모든 변수를 사용할 수있게하려면 실제로 'from mycode import *'를 입력해야한다는 것을 알았습니다.
그냥 해,
from my_file import *
.py 확장자를 추가하지 마십시오. 하위 디렉토리의 .py 파일을 사용하는 경우
from my_dir.my_file import *
다음 기능을 원한다고 가정하십시오.
__name__ == '__main__'
스크립트가 스크립트처럼 올바르게 작동하도록 True입니다.은 exec(open('foo.py').read())
이 기능 하나를 실패 import foo
전략은 기능이 실패
둘 다 얻으려면 다음이 필요합니다.
source = open(filename).read()
code = compile(source, filename, 'exec')
exec(code)