> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 os.path.exits()의 함정을 해결하는 방법

Python에서 os.path.exits()의 함정을 해결하는 방법

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2023-05-16 17:58:27
앞으로
1194명이 탐색했습니다.

문제

때때로 비슷한 코드를 자주 볼 수 있습니다.

1

2

assert os.path.isdir(path_model_dir)

assert os.path.exits(path_model_dir)

로그인 후 복사

상대 경로를 path_model_dir로 입력하면 재앙적인 결과가 발생합니다. 다음 요소에 주의해야 합니다.

  • os.path.exists() 메서드는 파일을 찾기 위해 sys.path의 경로를 직접 사용하지 않고 운영 체제의 경로를 호출하여 지정된 경로인지 확인합니다. 인터페이스가 존재합니다.

  • 상대 경로를 사용할 때 Python은 먼저 이를 현재 작업 디렉터리에 대한 상대 경로로 해석합니다. 일반적으로 대화형 인터프리터의 현재 작업 디렉토리는 인터프리터가 시작된 디렉토리입니다.

위의 두 단락에서는 상대 경로를 입력하면 여기에 언급된 상대 경로는 현재 파일에 대한 상대 경로이거나 인터프리터 실행에 대한 상대 경로인지에 관계없이 인터프리터에 대한 상대 경로임을 설명합니다. , 또는 통역사 디버깅 또는 명령줄의 상대 경로? 예전에 같은 에디터에서 코드를 편집했는데, 실행 시 바로 실행이 되었는데, 디버깅할 때 계속 오류가 나더군요. 나중에 같은 에디터에서 디버깅하는 인터프리터와 실행 중인 인터프리터의 상대 경로가 다르다는 걸 발견했습니다(놀랍게도). !).

그리고 os.path.exists() 메서드는 파일을 찾기 위해 sys.path의 경로를 직접 사용하지 않으며, 파일을 찾기 위해 ~/.bashrc의 환경 변수를 사용하지도 않습니다. .파일을 찾아보세요.

제안

두 가지 제안이 있습니다. 핵심은 절대 경로를 사용하는 것입니다.

  • 문자열에 절대 경로를 직접 작성

  • (권장) __file__을 사용하여 스크립트 파일에 대한 상대 경로를 연결합니다.

어떤 사람들은 sys.path.append( 경로) 어떤 용도로 사용되나요? 실제로 여기에 추가된 경로는 주로 가져오기 패키지를 가져오는 데 사용됩니다. 즉, Python의 모듈 검색 경로에 추가 디렉터리를 추가하려는 경우 해당 디렉터리를 sys.path 목록에 추가할 수 있습니다. 그러면 Python이 모듈을 검색할 때 이러한 디렉터리를 자동으로 포함하게 됩니다. 그러나 이 메서드는 os.path.exists() 메서드를 호출할 때가 아니라 Python이 모듈을 가져올 때 사용된다는 점에 유의하세요.

위 내용은 Python에서 os.path.exits()의 함정을 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿