Python 인터프리터 내에서 파일을 실행하는 방법은 무엇입니까?
인터프리터 내에서 Python 명령어로 파일을 실행하려고 합니다.
편집: 이 파일의 변수와 설정을 사용하려고 합니다.별도의 프로세스를 기동하는 것이 아닙니다.
여러 가지 방법.
껍질에서
python someFile.py
IDLE 내부에서 F5 키를 누릅니다.
인터랙티브하게 입력하는 경우는, 다음의 조작을 실시해 주세요(Python3).
>>> exec(open("filename.py").read())
Python 2의 경우:
>>> variables= {} >>> execfile( "someFile.py", variables ) >>> print variables # globals from the someFile module
Python 2의 경우:
>>> execfile('filename.py')
Python 3의 경우:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
메뉴얼을 참조해 주세요.Python 3.0을 사용하는 경우 다음 질문을 참조하십시오.
@S의 답변을 참조하십시오.실행 후 filename.py에서 글로벌에 액세스하는 방법의 예를 참조하십시오.
Python 2 + Python 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 하는 것만으로import filename
(filename .py, 같은 디렉토리 또는 에 있어야 합니다.PYTHONPATH
)는 파일을 실행하여 변수, 함수, 클래스 등을 에서 사용할 수 있도록 합니다.filename.variable
네임스페이스.
그래서 만약에cheddar.py
다양한 스팸과 함수의 에그를 사용하여 Import할 수 있습니다.import cheddar
, 를 사용하여 변수에 액세스합니다.cheddar.spam
호출하여 기능을 실행합니다.cheddar.eggs()
코드가 있는 경우cheddar.py
기능 외에서는 즉시 실행되지만 Import 시 실행되는 어플리케이션을 구축하면 코드를 재사용하기가 어려워집니다.가능하면 모든 것을 함수나 클래스에 넣습니다.
제 생각에 가장 좋은 방법은 다음과 같습니다.
import yourfile
파일을 수정한 후.화이
reload(yourfile)
또는 python3:
import imp;
imp.reload(yourfile)
이렇게 하면 기능과 클래스가 당신의 파일과 같은 상태가 됩니다.function1, yourfile.class1.....
이러한 사항을 수락할 수 없는 경우, 최종 해결 방법은 다음과 같습니다.
reload(yourfile)
from yourfile import *
그냥 해.
from my_file import *
.py 확장자를 추가하지 마십시오.서브디렉토리의 .py 파일이 사용되는 경우,
from my_dir.my_file import *
저는 전문가는 아니지만 다음과 같은 사실을 알게 되었습니다.
당신의 코드가 mycode일 경우.예를 들어 'import mycode'를 입력하면 Python은 실행되지만 모든 변수를 인터프리터가 사용할 수 있는 것은 아닙니다.모든 변수를 인터프리터가 사용할 수 있도록 하려면 실제로 'mycode import *에서'를 입력해야 합니다.
Python 3의 경우:
>>> exec(open("helloworld.py").read())
명령을 실행하기 전에 올바른 디렉토리에 있는지 확인하십시오.
다른 디렉토리에서 파일을 실행하려면 다음 명령을 사용합니다.
with open ("C:\\Users\\UserName\\SomeFolder\\helloworld.py", "r") as file:
exec(file.read())
python3의 경우 python3의 경우 python3의 경우 python3의 경우 python3의 중 하나를 사용합니다.xxxx = name
yourfile
exec(open('./xxxx.py').read())
다음의 기능을 필요로 하는 경우:
- 소스 파일이 디버거에서 올바르게 동작합니다(파일 이름이 스택 등에 표시됨).
__name__ == '__main__'
는 true이므로 스크립트는 스크립트로 올바르게 동작합니다.
exec(open('foo.py').read())
1에 import foo
feature 2 " " " 2 " "
둘 다 얻으려면 다음 사항이 필요합니다.
source = open(filename).read()
code = compile(source, filename, 'exec')
exec(code)
python -c "exec(open('main.py').read())"
언급URL : https://stackoverflow.com/questions/1027714/how-to-execute-a-file-within-the-python-interpreter
'source' 카테고리의 다른 글
mariaDB - 사용자에게 권한 부여 오류 (0) | 2023.01.29 |
---|---|
MySQL에 JSON으로 데이터 저장 (0) | 2023.01.29 |
현재 디렉터리 및 파일 디렉터리 찾기 (0) | 2023.01.19 |
Vue.js $scopedSlots가 Vue 인스턴스에서 작동하지 않음 (0) | 2023.01.19 |
MySQL Error 1111 - 창 함수를 중첩할 때 그룹 함수가 잘못 사용됨 (0) | 2023.01.19 |