source

Python 인터프리터 내에서 파일을 실행하는 방법은 무엇입니까?

manycodes 2023. 1. 19. 21:07
반응형

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())

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

파이썬 3exec문서

아직 못 봐서 놀랐어.파일을 실행한 후 인터프리터를 열어두면 다음 명령을 사용하여 실행이 종료됩니다.-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 = nameyourfile

exec(open('./xxxx.py').read())

다음의 기능을 필요로 하는 경우:

  1. 소스 파일이 디버거에서 올바르게 동작합니다(파일 이름이 스택 등에 표시됨).
  2. __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

반응형