Python NameError: 이름 Execfile이 정의되지 않았습니다.
Python 2에는 파일이 Python 문으로 구문 분석되고 평가되는 내장 함수 execfile()
이 있습니다. 이 함수는 더 이상 Python 3에 없습니다.
이 기사는 Python 3에서 파일을 실행하는 것에 대한 가능한 대안을 보여줍니다.
Python 3에서 execfile()
의 대안
Python 2에서는 함수 execfile()
을 사용하여 파일을 실행합니다. Python 3에는 exec()
라는 유사한 함수가 있습니다.
먼저 파일을 열고 읽고 exec()
함수의 인수로 전달합니다.
Python 3의 exec()
함수
Python exec()
함수는 문자열로 전달된 동적으로 생성된 코드 블록을 실행합니다.
일반 구문:
# Python 3.x
exec(object, global, local)
exec()
함수에는 세 개의 매개변수가 필요합니다.
객체
는 문자열 또는 여러 줄 코드일 수 있습니다.전역
매개변수는 사전일 수 있습니다.로컬
은 매핑 사전이 될 수 있습니다.
local
및 global
매개변수는 모두 선택 사항입니다. 또한 exec()
는 무효 함수이며 어떤 값도 반환하지 않습니다.
아래 코드는 이 함수의 기본 작업을 보여줍니다. "programming is fun"
이라는 문자열이 다음 코드에 인쇄됩니다.
세 가지 수학 연산이 수행되고 exec()
함수에 개별적으로 전달됩니다.
마찬가지로 문자열에 여러 줄을 추가할 수 있으며 각 줄은 구문 분석되고 Python 문으로 간주되어 실행됩니다.
예제 코드:
# Python 3.x
exec('print("programming is fun")')
exec('x=4; y=9; print("Multiplication:", x*y)')
w = 200
exec("print(w == 200)")
exec("print(w / 100)")
출력:
programming is fun
Multiplication: 36
True
2.0
exec()
를 사용하여 Python 파일 실행
이제 코드에서 외부 Python 파일을 실행하려면 먼저 파일을 열고 읽고 exec()
함수에 인수로 전달해야 합니다.
여기서 우리는 다음 코드를 포함하는 상대 디렉토리에 myfile.py
파일을 생성했습니다.
# Python 3.x
print("Delftstack")
Python 코드에서 이 파일을 실행하려면 먼저 open()
을 사용하여 파일을 연 다음 read()
함수를 사용하여 읽고 마지막으로 exec()
함수를 사용하여 실행합니다.
예제 코드:
# Python 3.x
exec(open("myfile.py").read())
출력:
Delftstack
with
블록을 사용하여 exec()
를 사용하여 Python 파일 실행
with
블록은 파일이 블록 끝에 도달하면 파일을 안전하게 닫아(자동으로) 파일이 열려 있지 않도록 합니다.
예제 코드:
# Python 3.x
with open("myfile.py", "r") as f:
exec(f.read())
출력:
Delftstack
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn관련 문장 - Python Error
- AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.