현재 스크립트 디렉토리에서 파일을 안정적으로 여는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-15 06:41:03
원래의
162명이 탐색했습니다.

How to Reliably Open Files from the Current Script Directory?

현재 스크립트 디렉터리에서 파일 열기: 포괄적인 접근 방식

실행 중인 스크립트 디렉터리에서 파일을 열 때 다음을 사용하는 것이 중요합니다. 오류를 피하기 위한 적절한 기술. 처음에는 open("Some file.txt", "r")을 사용하는 것이 간단해 보일 수 있지만 Windows에서 두 번 클릭하여 스크립트를 시작할 때 문제가 발생할 수 있습니다.

이 문제를 해결하려면 일반적인 접근 방식은 os.path.join(sys.path[0], "Some file.txt")를 활용하여 파일 경로를 지정하는 것입니다. 이는 대부분의 경우 작동하지만 특정 시나리오에서는 실패할 수 있습니다.

대안 탐색:

  • os.getcwd() 및 os. path.abspath(''): 이 함수는 "현재 작업 디렉터리"를 제공하며 이는 스크립트 디렉터리와 다를 수 있습니다.
  • os.path.dirname(sys.argv[0] ) 및 os.path.dirname(__file__): 스크립트를 호출하는 데 사용되는 경로(상대 경로이거나 비어 있을 수 있음)를 검색합니다. 또한 IDLE 또는 PythonWin에서는 __file__을 사용할 수 없습니다.
  • sys.path[0] 및 os.path.abspath(os.path.dirname(sys.argv[0])): 이는 스크립트 디렉토리를 반환하는 것처럼 보이지만 그 동등성은 불확실합니다.

포함 모듈 고려:

이 문제는 다음에서 파일을 열 때 더 구체화될 수 있습니다. 포함된 모듈과 동일한 디렉토리입니다. 기존 기술로는 이러한 요구 사항을 적절하게 해결하지 못할 수 있습니다.

신뢰할 수 있는 솔루션:

완전히 신뢰할 수 있는 솔루션은 다음 코드를 사용하는 것입니다.

__location__ = os.path.realpath(
    os.path.join(os.getcwd(), os.path.dirname(__file__)))
로그인 후 복사

이 줄을 사용하면 시작 방법이나 플랫폼에 관계없이 스크립트 디렉터리를 정확하게 얻을 수 있습니다. 이 디렉터리 내의 파일을 열려면 다음을 사용하세요.

f = open(os.path.join(__location__, 'bundled-resource.jpg'))
로그인 후 복사

이 접근 방식은 Windows 및 Linux 모두에서 Django 애플리케이션과 리소스를 번들링하는 데 효과적인 것으로 입증되었습니다.

위 내용은 현재 스크립트 디렉토리에서 파일을 안정적으로 여는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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