Python 서로 다른 디 렉 터 리 간 모듈 호출 실현 방법
이전에 소프트웨어 개발 디 렉 터 리 를 써 서 이 블 로 그 를 규범화 시 켰 습 니 다.많은 사람들 이 이미 알 고 있 을 것 입 니 다.우 리 는 프로그램 을 쓸 때 일정한 규범 을 지 켜 야 합 니 다.그렇지 않 으 면 간단 한 논리 프로그램의 코드 라 도 읽 기 가 힘 들 고 많은 시간 을 차지 할 것 입 니 다.그러나 우리 가 이런 규범 디 렉 터 리 를 사용 하면우 리 는 어떻게 모듈 이전의 상호 도입 을 즐겁게 진행 합 니까?이것 은 우리 가 오늘 토론 한 두 가지 개념 인 절대 경로 와 상대 경로 라 고 말 할 수 밖 에 없다.
함수 기능 설명
1、__file__
기능:파일 의 상대 경 로 를 되 돌려 줍 니 다.
#atm.py    
print(__file__)
 
#pycharm     
D:\Python\Python35\python.exe D:/PycharmProjects/51homework/Atm/bin/atm.py
D:/PycharmProjects/51homework/Atm/bin/atm.py #       
# cmd  atm.py 
D:\PycharmProjects\51homework>python Atm/bin/atm.py 
Atm/bin/atm.py  #         
2、os.path.abspath()
기능:자신의 파일 의 절대 경 로 를 되 돌려 줍 니 다.
#atm.py     
import os
print(os.path.abspath(__file__))
# cmd      
D:\PycharmProjects\51homework>python Atm/bin/atm.py
D:\PycharmProjects\51homework\Atm\bin\atm.py #  atm.py      
기능:디 렉 터 리 이름 을 되 돌려 줍 니 다.파일 이름 이 필요 없습니다.
print(os.path.dirname( os.path.abspath(__file__) ))
D:\PycharmProjects\51homework\Atm\bin #      ,       
기능:python 환경의 실행 환경 변수
import sys
print(sys.path)
#cmd     
['D:\\PycharmProjects\\51homework\\Atm\\bin', 'D:\\Python\\Python35\\python35.zip',
 'D:\\Python\\Python35\\DLLs', 'D:\\Python\\Python35\\lib', 'D:\\Python\\Python35', 
'D:\\Python\\Python35\\lib\\site-packages'] 
3.절대 경로 와 상대 경로
1.절대 경로
절대 경로:루트 디 렉 터 리 를 시작 으로 당신 이 있 는 디 렉 터 리 로 갑 니 다.
>>> import os
>>> os.chdir("D:\\PycharmProjects\\51homework\\Atm\\bin\\")
>>> os.listdir()
['atm.py', '__init__.py']
>>> os.path.abspath('atm.py')
'D:\\PycharmProjects\\51homework\\Atm\\bin\\atm.py'  #  D           상대 경로:디 렉 터 리 를 시작 으로 디 렉 터 리 로 이동 합 니 다.
>>> import os
>>> os.chdir("D:\\PycharmProjects\\51homework\\Atm\\bin\\")
>>> os.listdir()
['atm.py', '__init__.py']
>>> os.path.dirname('atm.py')
''  #      1.환경 변수 추가
일반적인 상황 에서 절대 경로 함수 와 상대 경로 함 수 는 결합 하여 사용 하 는데 특히 서로 다른 디 렉 터 리 간 에 서로 다른 모듈 을 호출 합 니 다.
 
 예 를 들 어 상기 등급:atm.py 가 다른 모듈 의 코드 를 호출 하려 면 atm.py 와 같은 등급 이 어야 합 니 다.믿 지 않 으 면 다음 코드 를 보십시오.
#atm.py    
import sys
print(sys.path)
#cmd     
D:\PycharmProjects\51homework>python Atm/bin/atm.py
['D:\\PycharmProjects\\51homework\\Atm\\bin', 'D:\\Python\\Python35\\python35.zip',
 'D:\\Python\\Python35\\DLLs', 'D:\\Python\\Python35\\lib', 'D:\\Python\\Python35', 
'D:\\Python\\Python35\\lib\\site-packages']절 차 는 다음 과 같다.
1.Atm 의 절대 경로 가 져 오기
2.환경 변수 에 추가
코드 는 다음 과 같 습 니 다:
#atm.py    
import os,sys
BASE_DIR = os.path.dirname( os.path.dirname( os.path.abspath(__file__) ) ) #Atm     
print(BASE_DIR)
sys.path.append(BASE_DIR) #        
#cmd    
D:\PycharmProjects\51homework>python Atm/bin/atm.py  #  atm.py  
D:\PycharmProjects\51homework\Atm  #  Atm     
['D:\\PycharmProjects\\51homework\\Atm\\bin', 'D:\\Python\\Python35\\python35.zip', 
'D:\\Python\\Python35\\DLLs', 'D:\\Python\\Python35\\lib', 'D:\\Python\\Python35',
 'D:\\Python\\Python35\\lib\\site-packages',
 'D:\\PycharmProjects\\51homework\\Atm']  #Atm                다음은 서로 다른 디 렉 터 리 에서 모듈 간 호출 을 순조롭게 진행 할 수 있 습 니 다.
#atm.py    
import os,sys
BASE_DIR = os.path.dirname( os.path.dirname( os.path.abspath(__file__) ) )
sys.path.append(BASE_DIR)
from core import main  #  core  main  
main.sayhi()  #  main   sayhi  
 
#main.py   
def sayhi():
  print("hello word")
 
#cmd     
D:\PycharmProjects\51homework>python Atm/bin/atm.py
hello word이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.